SOAP 1.1 client implementing ISoapClient, on java.net.http and the JDK's XML parser, for WCF services.
Operations are described in config rather than read from a WSDL: WCF's defaults (SOAPAction namespace + contract + operation, request element named after the operation) cover most, and :operations sets the rest.
Usage: (def ibabs (create-soap-client {:endpoint "https://ibabs.example/api/v2/List.svc" :contract "IList" :data-namespace "http://schemas.datacontract.org/2004/07/iBabs" :retry-faults ["Unknown fault occured"] :operations {:GetListEntries {:timeout-ms 60000}}})) (ports/call! ibabs :GetLists {:Sitename "town"})
SOAP 1.1 client implementing ISoapClient, on java.net.http and the JDK's
XML parser, for WCF services.
Operations are described in config rather than read from a WSDL: WCF's
defaults (SOAPAction namespace + contract + operation, request element named
after the operation) cover most, and :operations sets the rest.
Usage:
(def ibabs (create-soap-client
{:endpoint "https://ibabs.example/api/v2/List.svc"
:contract "IList"
:data-namespace "http://schemas.datacontract.org/2004/07/iBabs"
:retry-faults ["Unknown fault occured"]
:operations {:GetListEntries {:timeout-ms 60000}}}))
(ports/call! ibabs :GetLists {:Sitename "town"})(create-soap-client
{:keys [endpoint username password basic-auth? connect-timeout-ms max-attempts
backoff-ms operations]
:or {connect-timeout-ms 10000 max-attempts 3 backoff-ms 1000}
:as config})Create a SOAP 1.1 client.
Config keys: :endpoint - service URL (required) :namespace - operations' namespace (default http://tempuri.org/) :contract - service contract, e.g. IList: SOAPAction is namespace + contract + "/" + operation :data-namespace - namespace of nested request members :username, :password - sent as HTTP Basic auth (:basic-auth?, default true when :username is set) and/or as the leading parameters named by :credential-elements :timeout-ms - per attempt, response included (default 30000) :connect-timeout-ms - (default 10000) :max-attempts - tries per call (default 3) :backoff-ms - first retry delay, doubled per retry (default 1000) :retry-faults - fault messages to retry, strings or regexes :operations - {:GetListEntries {:timeout-ms .. :arrays #{..} ..}} :cache - cache component; enables the circuit breaker :circuit-breaker - {:failure-threshold 5 :open-ms 30000}
Returns: SoapClient implementing ISoapClient
Create a SOAP 1.1 client.
Config keys:
:endpoint - service URL (required)
:namespace - operations' namespace (default http://tempuri.org/)
:contract - service contract, e.g. IList: SOAPAction is
namespace + contract + "/" + operation
:data-namespace - namespace of nested request members
:username, :password - sent as HTTP Basic auth (:basic-auth?, default true
when :username is set) and/or as the leading
parameters named by :credential-elements
:timeout-ms - per attempt, response included (default 30000)
:connect-timeout-ms - (default 10000)
:max-attempts - tries per call (default 3)
:backoff-ms - first retry delay, doubled per retry (default 1000)
:retry-faults - fault messages to retry, strings or regexes
:operations - {:GetListEntries {:timeout-ms .. :arrays #{..} ..}}
:cache - cache component; enables the circuit breaker
:circuit-breaker - {:failure-threshold 5 :open-ms 30000}
Returns:
SoapClient implementing ISoapClientcljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |