requestsoap v1.0.12
Project Title
Classe per l'invocazione di servizi SOAP, tramite URL del WSDL
Getting Started
A seguire, alcuni esempi di utilizzo di invocazione alle funzionalita della classe.
Prerequisites
importare il pacchetto come request.
const RequestSoap = require ("requestsoap") ; let requestSoap = new RequestSoap();
esempio 1
/**
* @author l.piciollo
* Ritorna il risultato dell'invocazione al servizio SOAP, invocando la url del wsd e passando i parametri per la creazione
* automatica del XML da invocare
* @param {*} wsdlURL Url del servizio ?WSDL
* @param {*} soapAction azione da invocare
* @param {*} requestArgs parametri da inserire all'interno dell'xml
* @param {*} options NOT IMPLEMENT IN THIS VERSION
*/
XMM da passare al servizio, ricavato tramite la chiamata getWSDL(URL)
<xs:element name="newsRequest"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="number" type="xs:int"/> <xs:element name="filter" type="xs:string"/> <xs:element minOccurs="0" name="language" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Creazione dell'oggetto da passare per l'invocazione del servizio, l'oggetto è costruito prendendo in esame l'xml sopra citato. occorre costruire l'oggetto mantenendo la gerarchia padre figlio.. quindi in questo caso si avra un oggetto name="newsRequest" > che ha i seguenti paraetri name="number" name="filter" name="language"
const requestArgs = { newsRequest:{ language : 'EN', number : 3 , filter : "IT" } };
//Url del wsdl da invocare const wsdlURL = 'http:///News?wsdl';
// Azione da richiamare dal servizio const soapAction = "getNews"
// chiamata al servizio, con risposta in formato JSON dei dati // response { body: body, statusCode: statusCode } requestSoap.requestFromWSDL(wsdlURL, soapAction, requestArgs, options).then( (response)=> { console.log(response); });
esempio 2
const RequestSoap = require ("requestsoap") ;
let requestSoap = new RequestSoap();
//Url del wsdl da reperire
const wsdlURL = 'http://<host>/News?wsdl';
/**
- @author l.piciollo
- invocato passando la url del wsdl, ritorna lo stesso in formato xml per vedere cosa espone il servizio
- @param {*} wsdlURL
response { XML } */ requestSoap.getWSDL(wsdlURL ).then( (response)=> { console.log(response ); });
si avra la stampa dei dati del servizio esposto, in modo da poter prendere visione di cosa si aspetta, come ad esempio
.... .... <xs:element name="newsRequest"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="number" type="xs:int"/> <xs:element name="filter" type="xs:string"/> <xs:element minOccurs="0" name="language" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
... ...
esempio 3
in caso si ha l'xml da passare al servizio e si vuole popolarlo maualmente, come ad esempio
<soapenv:Envelope xmlns:soapenv="..." xmlns:news="...">
<soapenv:Header/>
<soapenv:Body>
<news:newsRequest>
<!--Optional:-->
<number>3</number>
<filter>1IT</filter>
<!--Optional:-->
<language>EN</language>
</news:newsRequest>
</soapenv:Body>
</soapenv:Envelope>
const RequestSoap = require ("requestsoap") ;
let requestSoap = new RequestSoap();
//Url del wsdl da reperire
const wsdlURL = 'http://<host>/News?wsdl';
//ricavare l'azione dal wsdl >>>> <soap:operation soapAction="........ " style="document"/>
const soapAction = "http://.........../getNews"
/**
- @author l.piciollo
- Ritorna il risultato dell'invocazione al servizio SOAP, tramite un WSDL compilato
- @param {*} url del servizio esposto
- @param {*} xml da passare al servizio
- @param {*} soapAction azione da richiamare, occorre conoscere l'azione precisa richiesta
- @param {*} timeout tempo di attesa alla risposta
- response { body } */requestFromXML(wsdlURL, xml, soapAction, timeout).then( (response)=> { console.log(response ); });
Installing
npm i requestsoap
Authors
Luca Piciollo -
License
This project is licensed under the MIT License - see the LICENSE.md file for details