The soapProxy auto-configures itself from a WSDL: it reads the soap:address to derive the backend host, port, and path, rewrites the WSDL endpoint to point to the gateway, and serves the rewritten WSDL at ?wsdl. A built-in service explorer is available at the same address. When a path is configured, request paths are automatically rewritten between the gateway path and the backend path. See tutorials/soap/20-SOAPProxy.yaml.
Explanation:
If the WSDL is unavailable at startup, the proxy becomes inactive. Reinitialization can be triggered via the admin console or automatically by the router, which periodically retries.
Example Configuration
# Minimal: auto-configure from WSDL soapProxy: port:2000 wsdl: https://www.predic8.de/city-service?wsdl
---
# Full: path rewriting, WSDL validation, custom host/port in rewritten WSDL, # explicit service selection, and a dedicated HTTP client for WSDL retrieval soapProxy: port:2000 host: api.example.com wsdl: https://www.predic8.de/city-service?wsdl serviceName: CityService portName: CityServiceSoap path: uri: /city-service wsdlHttpClientConfig: connection: timeout:5000 flow: -wsdlRewriter: host: api.example.com protocol: https port:443 -validator:{}
Restricts to requests whose Host header matches one of the given hostnames. Separate multiple hostnames with spaces. The asterisk * matches any number of characters, including zero, for basic globbing.
predic8.de *.predic8.de
ip
false
not set
If present, binds the port only on the specified IP. Useful for hosts with multiple IP addresses.
127.0.0.1
name
false
By default, a name will be automatically generated from the target, openapi, etc.
The name of the proxy or API.
-
port
false
80
The port Membrane listens on for incoming connections.
8080
portName
false
-
Name of the WSDL port. When omitted, the explorer shows the first port defined in the WSDL.
-
serviceName
false
-
Name of the WSDL service to use, if the WSDL defines more than one. Optional; if omitted, the first service defined in the WSDL is used.
-
tags
false
-
-
-
wsdl
true
-
URL or file path of the WSDL document. Both HTTP/HTTPS URLs and file: paths are supported.
Settings the HTTP client uses for calls to a backend: socket timeouts, an upstream proxy, credentials, TLS and retry behavior. Every part is optional and falls back to its defaults when omitted. Configure it once globally, or on a single plugin that calls a backend.
Metadata about the API that API catalogs publish, such as whom to contact. It takes precedence over the same metadata in an OpenAPI document of the API.
Restricts to requests whose path matches, either by prefix (starts-with) or, when enabled, by regular expression. In a soapProxy, setting a path also rewrites the paths of SOAP requests and the service addresses in the WSDL accordingly.
Configures a TLS context: the identity (key and certificate) presented to the peer, the certificates trusted from it, and handshake parameters such as protocol, ciphers, and client-certificate policy. Attach it to a serviceProxy/api to terminate inbound TLS, or to a target to make an outbound connection over TLS; most attributes and child elements apply to both directions, but a few - such as clientAuth and useAsDefault - only take effect on an inbound context. See tutorials/ssl-tls/10-TLS-Termination.yaml for inbound termination and tutorials/ssl-tls/20-Central-SSL-Config.yaml for sharing one ssl across several APIs via $ref.