Module: WSDL
- Defined in:
- lib/wsdl.rb,
lib/wsdl/ns.rb,
lib/wsdl/log.rb,
lib/wsdl/http.rb,
lib/wsdl/qname.rb,
lib/wsdl/client.rb,
lib/wsdl/config.rb,
lib/wsdl/errors.rb,
lib/wsdl/limits.rb,
lib/wsdl/parser.rb,
lib/wsdl/schema.rb,
lib/wsdl/request.rb,
lib/wsdl/version.rb,
lib/wsdl/contract.rb,
lib/wsdl/resolver.rb,
lib/wsdl/response.rb,
lib/wsdl/security.rb,
lib/wsdl/operation.rb,
lib/wsdl/definition.rb,
lib/wsdl/formatting.rb,
lib/wsdl/strictness.rb,
lib/wsdl/xml/parser.rb,
lib/wsdl/http/client.rb,
lib/wsdl/http/config.rb,
lib/wsdl/parser/port.rb,
lib/wsdl/schema/node.rb,
lib/wsdl/xml/element.rb,
lib/wsdl/http/response.rb,
lib/wsdl/parse_options.rb,
lib/wsdl/request/names.rb,
lib/wsdl/xml/attribute.rb,
lib/wsdl/parser/binding.rb,
lib/wsdl/parser/service.rb,
lib/wsdl/response/fault.rb,
lib/wsdl/parser/document.rb,
lib/wsdl/resolver/loader.rb,
lib/wsdl/resolver/source.rb,
lib/wsdl/response/parser.rb,
lib/wsdl/security/config.rb,
lib/wsdl/security/policy.rb,
lib/wsdl/parser/port_type.rb,
lib/wsdl/request/envelope.rb,
lib/wsdl/response/builder.rb,
lib/wsdl/contract/template.rb,
lib/wsdl/request/validator.rb,
lib/wsdl/resolver/importer.rb,
lib/wsdl/schema/collection.rb,
lib/wsdl/schema/definition.rb,
lib/wsdl/security/digester.rb,
lib/wsdl/security/verifier.rb,
lib/wsdl/definition/builder.rb,
lib/wsdl/request/serializer.rb,
lib/wsdl/security/constants.rb,
lib/wsdl/security/reference.rb,
lib/wsdl/security/signature.rb,
lib/wsdl/security/timestamp.rb,
lib/wsdl/xml/threat_scanner.rb,
lib/wsdl/http/redirect_guard.rb,
lib/wsdl/parser/input_output.rb,
lib/wsdl/parser/message_info.rb,
lib/wsdl/request/dsl_context.rb,
lib/wsdl/request/rpc_wrapper.rb,
lib/wsdl/xml/element_builder.rb,
lib/wsdl/parser/import_result.rb,
lib/wsdl/parser/operation_map.rb,
lib/wsdl/parser/operation_info.rb,
lib/wsdl/response/fault_parser.rb,
lib/wsdl/response/type_coercer.rb,
lib/wsdl/security/id_generator.rb,
lib/wsdl/contract/part_contract.rb,
lib/wsdl/security/canonicalizer.rb,
lib/wsdl/security/verifier/base.rb,
lib/wsdl/definition/element_hash.rb,
lib/wsdl/parser/header_reference.rb,
lib/wsdl/security/request_policy.rb,
lib/wsdl/security/secure_compare.rb,
lib/wsdl/security/username_token.rb,
lib/wsdl/parser/binding_operation.rb,
lib/wsdl/parser/message_reference.rb,
lib/wsdl/security/request_context.rb,
lib/wsdl/security/response_policy.rb,
lib/wsdl/security/security_header.rb,
lib/wsdl/contract/message_contract.rb,
lib/wsdl/response/security_context.rb,
lib/wsdl/security/algorithm_mapper.rb,
lib/wsdl/parser/document_collection.rb,
lib/wsdl/parser/port_type_operation.rb,
lib/wsdl/security/signature_options.rb,
lib/wsdl/contract/operation_contract.rb,
lib/wsdl/security/xml_builder_helper.rb,
lib/wsdl/security/request_materializer.rb,
lib/wsdl/security/credential_normalizer.rb,
lib/wsdl/security/response_verification.rb,
lib/wsdl/request/security_conflict_detector.rb,
lib/wsdl/security/verifier/reference_validator.rb,
lib/wsdl/security/verifier/signature_validator.rb,
lib/wsdl/security/verifier/structure_validator.rb,
lib/wsdl/security/verifier/timestamp_validator.rb,
lib/wsdl/security/verifier/certificate_resolver.rb,
lib/wsdl/security/verifier/certificate_validator.rb,
lib/wsdl/security/verifier/element_position_validator.rb
Overview
WSDL toolkit for Ruby.
This library provides tools for working with WSDL 1.1 documents, including parsing WSDL definitions, inspecting services and operations, and executing SOAP requests. WSDL 2.0 documents are detected and rejected with an UnsupportedWSDLVersionError.
The main entry point is Client, which loads a WSDL document and provides access to its services and operations.
Defined Under Namespace
Modules: Contract, Formatting, HTTP, Log, NS, Parser, Request, Resolver, Schema, Security, XML Classes: CertificateValidationError, Client, Config, Definition, DefinitionError, DuplicateDefinitionError, Error, FatalError, Limits, Operation, OperationOverloadError, ParseOptions, PathRestrictionError, QName, RequestDefinitionError, RequestDslError, RequestSecurityConflictError, RequestValidationError, ResourceLimitError, Response, ResponseBuildError, SchemaImportError, SchemaImportParseError, SealedCollectionError, SecurityError, SignatureVerificationError, Strictness, TimestampValidationError, TooManyRedirectsError, UnresolvableImportError, UnresolvedReferenceError, UnsafeRedirectError, UnsupportedAlgorithmError, UnsupportedStyleError, UnsupportedWSDLVersionError, XMLSecurityError
Constant Summary collapse
- VERSION =
The current version of the WSDL gem.
'1.1.0'
Class Attribute Summary collapse
-
.http_client ⇒ Class
The HTTP client class (defaults to HTTP::Client).
-
.logger ⇒ Logger, Log::NullLogger
Returns the logger for the WSDL library.
Instance Attribute Summary collapse
-
#limits ⇒ Limits
readonly
Resource limits for DoS protection (always resolved, never nil).
-
#sandbox_paths ⇒ Array<String>?
readonly
Directories where file access is allowed.
-
#strictness ⇒ Strictness
readonly
Strictness settings for schema/request validation.
Class Method Summary collapse
-
.dump(definition) ⇒ Hash{String => Object}
Serializes a Definition to a plain Hash.
-
.load(hash) ⇒ Definition
Restores a Definition from a serialized Hash.
-
.parse(source, http: nil, strictness: nil, sandbox_paths: nil, limits: nil) ⇒ Definition
Parses a WSDL and returns a frozen Definition.
Class Attribute Details
.http_client ⇒ Class
Returns the HTTP client class (defaults to WSDL::HTTP::Client).
33 34 35 |
# File 'lib/wsdl.rb', line 33 def http_client @http_client end |
.logger ⇒ Logger, Log::NullLogger
Returns the logger for the WSDL library.
Defaults to a silent WSDL::Log::NullLogger that discards all output. Assign a custom logger via logger=.
45 46 47 |
# File 'lib/wsdl.rb', line 45 def logger @logger end |
Instance Attribute Details
#limits ⇒ Limits (readonly)
Returns resource limits for DoS protection (always resolved, never nil).
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/wsdl/parse_options.rb', line 14 ParseOptions = Data.define(:sandbox_paths, :limits, :strictness) { # Constructs a {ParseOptions} with sensible defaults. # # @param sandbox_paths [Array<String>, nil] sandbox paths (default: `nil`, auto-resolved by Source) # @param limits [Limits, nil] resource limits (default: {Limits} defaults) # @param strictness [Strictness, nil] strictness settings (default: all strict) # @return [ParseOptions] # def self.default(sandbox_paths: nil, limits: nil, strictness: nil) new( sandbox_paths:, limits: limits || Limits.new, strictness: strictness || Strictness.new ) end } |
#sandbox_paths ⇒ Array<String>? (readonly)
Returns directories where file access is allowed.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/wsdl/parse_options.rb', line 14 ParseOptions = Data.define(:sandbox_paths, :limits, :strictness) { # Constructs a {ParseOptions} with sensible defaults. # # @param sandbox_paths [Array<String>, nil] sandbox paths (default: `nil`, auto-resolved by Source) # @param limits [Limits, nil] resource limits (default: {Limits} defaults) # @param strictness [Strictness, nil] strictness settings (default: all strict) # @return [ParseOptions] # def self.default(sandbox_paths: nil, limits: nil, strictness: nil) new( sandbox_paths:, limits: limits || Limits.new, strictness: strictness || Strictness.new ) end } |
#strictness ⇒ Strictness (readonly)
Returns strictness settings for schema/request validation.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/wsdl/parse_options.rb', line 14 ParseOptions = Data.define(:sandbox_paths, :limits, :strictness) { # Constructs a {ParseOptions} with sensible defaults. # # @param sandbox_paths [Array<String>, nil] sandbox paths (default: `nil`, auto-resolved by Source) # @param limits [Limits, nil] resource limits (default: {Limits} defaults) # @param strictness [Strictness, nil] strictness settings (default: all strict) # @return [ParseOptions] # def self.default(sandbox_paths: nil, limits: nil, strictness: nil) new( sandbox_paths:, limits: limits || Limits.new, strictness: strictness || Strictness.new ) end } |
Class Method Details
.dump(definition) ⇒ Hash{String => Object}
Serializes a Definition to a plain Hash.
The returned hash is suitable for JSON serialization and can be restored via load. This is the inverse of load.
128 129 130 |
# File 'lib/wsdl.rb', line 128 def dump(definition) definition.to_h end |
.load(hash) ⇒ Definition
Restores a Definition from a serialized Hash.
The hash must have been produced by dump, WSDL::Definition#to_h, or parsed from WSDL::Definition#to_json. Raises if the schema version doesn't match the current library version.
146 147 148 |
# File 'lib/wsdl.rb', line 146 def load(hash) Definition.from_h(hash) end |
.parse(source, http: nil, strictness: nil, sandbox_paths: nil, limits: nil) ⇒ Definition
Parses a WSDL and returns a frozen Definition.
Accepts a URL or file path. Uses the parsing pipeline internally and returns a Definition that can be serialized and passed to Client.new.
101 102 103 104 105 106 107 108 109 110 |
# File 'lib/wsdl.rb', line 101 def parse(source, http: nil, strictness: nil, sandbox_paths: nil, limits: nil) http ||= http_client.new Parser.parse( source, http, sandbox_paths:, limits: Limits.resolve(limits) || Limits.new, strictness: Strictness.resolve(strictness) || Strictness.new ) end |