Generic SOAP / WebServices integration component
SOAP component component for the [elastic.io platform](http://www.elastic.io "elastic.io platform")
This component currently supports Baisc authentication, so credentials are like this:
As you may see you need following data:
- WSDL URL - this field is mandatory. WSDL is required if you want to call a SOAP service. It should be a readable URL.
- Username - optional username
- Password - optional password
Only if both username
and password
will be given, then Basic authentication header
will be added to the SOAP call.
You may also extend this component and add more authentication methods, see
node-soap documentation on that topic
You may try this component using a sample SOAP service deployed on Heroku. WSDL of that service you can find here:
https://eio-soap-sample.herokuapp.com/ws/countries.wsdl
This is how XML Request looks like:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:gs="http://spring.io/guides/gs-producing-web-service">
<soapenv:Header/>
<soapenv:Body>
<gs:getCountryRequest>
<gs:name>Spain</gs:name>
</gs:getCountryRequest>
</soapenv:Body>
</soapenv:Envelope>
and response:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:getCountryResponse xmlns:ns2="http://spring.io/guides/gs-producing-web-service">
<ns2:country>
<ns2:name>Spain</ns2:name>
<ns2:population>46704314</ns2:population>
<ns2:capital>Madrid</ns2:capital>
<ns2:currency>EUR</ns2:currency>
</ns2:country>
</ns2:getCountryResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
It's easy to try to call it from elastic.io, just place a WSDL in credentials, no authentication is needed, and then send a message with following body:
{
"name":"Spain"
}
following body will also work:
"body": {
"_xml": "<getCountryRequest xmlns=\"http://spring.io/guides/gs-producing-web-service\"><name>Spain</name></getCountryRequest>"
}
more samples you can find in the integration test.
There are following limitations & known issues:
- Only SOAP bindings are supported, HTTP bindings are not supported
See more documentation on node-soap.
Apache-2.0 © elastic.io GmbH