How to consume data with Soap and NodeJS
Recently I needed to create a microservice to consume an old API made with SOAP.
As it would just be a simple consumption and I didn't want to implement this in the core project, I decided to work with AWS Lambda. This way the endpoint would be isolated and I wouldn't need to worry about infrastructure.
The process is very simple, a single endpoint that consumes data from the soap API and returns it in a JSON.
For this scenario, I decided to use nodejs.
The first step was to find a package to work with the soap protocol, this task was very simple and I ended up using soap.
With the soap package, I managed to solve my problem basically using a single nodejs file.
// import package
const soap = require('soap')
// service endpoint
const url = 'http://my-endpoint.com/namespace.svc?wsdl'
// create soap client
soap.createClient(url, (err, client) => {
// call method GetUsers from soap api
client.GetUsers(
{
// params
data: {
UserId: '969666',
},
},
function (err, result) {
// if error
if (err) {
return console.log(err)
}
// final result
console.log(result)
}
)
})
The way the problem was solved was simple and functional, as the code was totally isolated from the main project and the best, running 100% with AWS lambdas.
Hope this help you! 🚀