easysoap is a WSDL SoapClient for Node.js.
install with npm
npm i easysoap
const EasySoap = require('easysoap');
const soapClient = EasySoap(params, opts);
params createParams, soapOptions
response instance of easysoap
createParams
{
host : 'www.example.com',
path : '/soap/path',
wsdl : '/wsdl/path',
headers : Array or Object,
rejectUnauthorized : true/false
}
soapOptions
{
secure : true/false //is https or http
}
params callParams
response callResponseObject
params callParams
response xml (string)
callParams
{
method : "sampleMethodName",
attributes: Object of custom tag attributes for given params,
params : Object/Array of params
}
params xml (string)
response xmldata as json
response Function Names (array)
params methodName (string)
response methodParams (object)
(() => {
'use strict';
const EasySoap = require('easysoap');
// define soap params
const params = {
host: 'www.sample.com',
path: '/path/soap/',
wsdl: '/path/wsdl/',
// set soap headers (optional)
headers: [{
'name' : 'item_name',
'value' : 'item_value',
'namespace': 'item_namespace'
}]
}
/*
* create the client
*/
var soapClient = EasySoap(params);
/*
* get all available functions
*/
soapClient.getAllFunctions()
.then((functionArray) => { console.log(functionArray); })
.catch((err) => { throw new Error(err); });
/*
* get the method params by given methodName
*/
soapClient.getMethodParamsByName('methodName')
.then((methodParams) => {
console.log(methodParams.request);
console.log(methodParams.response);
})
.catch((err) => { throw new Error(err); });
/*
* call soap method
*/
soapClient.call({
method : 'methodName',
attributes: {
xmlns: 'http://www.sample.com'
},
params: {
testParam: 1,
testParam: [2, 3],
testParam: {
'_value' : 4,
'_attributes': {
'xmlns1': 'http://www.sample.com/other'
}
}
}
})
.then((callResponse) => {
console.log(callResponse.data); // response data as json
console.log(callResponse.body); // response body
console.log(callResponse.header); //response header
})
.catch((err) => { throw new Error(err); });