请推荐一些课程/ tutorial/books 使用 Nodejs 创建 soap 请求
Please suggest some courses/ tutorial/books for creating soap request with Nodejs
我浏览了几乎所有的视频、博客,我可以找到与 Nodejs 集成的相关 soap,但找不到任何完全初学者的东西。请帮忙。
- 示例 SOAP 服务
首先,我们将从 Node 环境中获取一个样本 SOAP Web 服务来使用。让我们看看这个 SOAP 调用的结构。
请求URL
http://www.example.com/exampleapi
XML 请求模板
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<GetUser>
<UserId>123456</UserId>
</GetUser>
</soap:Body>
</soap:Envelope>
XML 响应模板
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Body>
<GetUserResponse>
<Username>Clue Mediator</Username>
</GetUserResponse>
</soap:Body>
</soap:Envelope>
- 添加 npm 依赖项
在这里,我们将使用 easy-soap-request npm 包通过 Node.js 简化 SOAP 请求。 运行安装npm依赖的命令如下
npm i easy-soap-request
- 执行 SOAP 请求
npm包安装成功后,添加以下代码片段执行SOAP请求。
const soapRequest = require('easy-soap-request');
...
...
// Example data
const url = 'http://www.example.com/exampleapi';
const sampleHeaders = {
'Content-Type': 'text/xml;charset=UTF-8'
};
const xml = `<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<GetUser>
<UserId>123456</UserId>
</GetUser>
</soap:Body>
</soap:Envelope>
`;
// usage of module
(async () => {
const { response } = await soapRequest({ url: url, headers: sampleHeaders, xml: xml });
console.log(response.body);
/* Example output:
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Body>
<GetUserResponse>
<Username>Clue Mediator</Username>
</GetUserResponse>
</soap:Body>
</soap:Envelope>
*/
})();
- 输出
执行上述代码时,您将获得 SOAP 请求的响应中指定的输出。您还将收到 headers
和 statusCode
以及 soapRequest
.
的回复
您也可以从邮递员处查看相同的 SOAP 网络服务以进行验证。
我浏览了几乎所有的视频、博客,我可以找到与 Nodejs 集成的相关 soap,但找不到任何完全初学者的东西。请帮忙。
- 示例 SOAP 服务
首先,我们将从 Node 环境中获取一个样本 SOAP Web 服务来使用。让我们看看这个 SOAP 调用的结构。
请求URL
http://www.example.com/exampleapi
XML 请求模板
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<GetUser>
<UserId>123456</UserId>
</GetUser>
</soap:Body>
</soap:Envelope>
XML 响应模板
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Body>
<GetUserResponse>
<Username>Clue Mediator</Username>
</GetUserResponse>
</soap:Body>
</soap:Envelope>
- 添加 npm 依赖项
在这里,我们将使用 easy-soap-request npm 包通过 Node.js 简化 SOAP 请求。 运行安装npm依赖的命令如下
npm i easy-soap-request
- 执行 SOAP 请求
npm包安装成功后,添加以下代码片段执行SOAP请求。
const soapRequest = require('easy-soap-request');
...
...
// Example data
const url = 'http://www.example.com/exampleapi';
const sampleHeaders = {
'Content-Type': 'text/xml;charset=UTF-8'
};
const xml = `<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<GetUser>
<UserId>123456</UserId>
</GetUser>
</soap:Body>
</soap:Envelope>
`;
// usage of module
(async () => {
const { response } = await soapRequest({ url: url, headers: sampleHeaders, xml: xml });
console.log(response.body);
/* Example output:
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Body>
<GetUserResponse>
<Username>Clue Mediator</Username>
</GetUserResponse>
</soap:Body>
</soap:Envelope>
*/
})();
- 输出
执行上述代码时,您将获得 SOAP 请求的响应中指定的输出。您还将收到 headers
和 statusCode
以及 soapRequest
.
您也可以从邮递员处查看相同的 SOAP 网络服务以进行验证。