Skip to content

mgillman/soap-component

 
 

Repository files navigation

soap-component NPM version Build Status Dependency Status

Generic SOAP / WebServices integration component

soap-component

SOAP component component for the [elastic.io platform](http://www.elastic.io "elastic.io platform")

Authentication

This component currently supports Baisc authentication, so credentials are like this:

image

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

Calling a SOAP Web-Service

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.

Known issues & limitations

There are following limitations & known issues:

  • Only SOAP bindings are supported, HTTP bindings are not supported

See more documentation on node-soap.

License

Apache-2.0 © elastic.io GmbH

About

elastic.io integration component to dynamically call arbitrary SOAP/WebServices Services

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%