在node-soap中创建SOAP客户机时,WSDL用于什么?



在服务器端,wsdl用于构建/描述soap api,然而,当使用node-soap创建soap客户端时- wsdl用于什么?

这个家伙似乎把XML的每一小部分都写成JSON,并把它们全部作为参数添加到方法调用中——WSDL和node-soap包不应该在这里做一些神奇的事情来简化请求所需的参数吗?

当您有SOAP web服务时,您必须使用SOAP发送消息…显然。

这意味着,无论使用何种编程语言进行调用,或者使用何种编程语言构建响应,都需要将对象编组和反编组到SOAP XML,反之亦然。

因为SOAP是一种协议,所以它严格规定了那些XML消息的外观。因为有严格的规则,你可以让工具生成这些消息,并自动为你处理封送/解封送,只要你有一些服务API的描述,这些描述可以被工具使用。这里是WSDL输入的地方。

WSDL描述了SOAP web服务公开的契约,同时,为了进行调用,客户端需要遵守契约。使用适当的工具,您可以从WSDL在服务器上生成框架代码,并在客户机上生成存根代码,从而为您处理SOAP通信。这可以静态地通过生成代码来完成,也可以动态地通过在执行期间读取WSDL并公开可用于调用服务操作的方法来完成。

因此,为了回答您的问题,客户端的node-soap通过读取WSDL创建一个动态客户端,然后允许您调用web服务上的SOAP操作(如JavaScript方法),而不是麻烦地手工编写SOAP XML。如果没有客户端,显然可以手工构建SOAP XML,但如果已经有了客户端,则应该使用它,因为它使事情更干净。

最新更新