SoapUI – WSDL

SoapUI – WSDL


WSDL 代表 Web 服务描述语言。它是描述 Web 服务的标准格式。WSDL 是由 Microsoft 和 IBM 联合开发的。WSDL 发音为“wiz-dull”,拼写为“WSD-L”。

WSDL ─ 简史

2001 年 3 月,Ariba、IBM 和 Microsoft 将 WSDL 1.1 作为 W3C 注释提交,用于描述 W3C XML 活动关于 XML 协议的服务。

WSDL 1.1 尚未得到万维网联盟 (W3C) 的认可,但它刚刚发布了 2.0 版的草案,该草案将成为推荐(官方标准),因此得到了 W3C 的认可。

WSDL ─ 注意事项

WSDL 是一种基于 XML 的协议,用于在分散和分布式环境中进行信息交换。WSDL 的其他一些特性如下 –

  • WSDL 定义描述了如何访问 Web 服务以及它将执行哪些操作。

  • 它是一种用于描述如何与基于 XML 的服务交互的语言。

  • 它是通用描述、发现和集成 (UDDI) 的组成部分,UDDI 是一个基于 XML 的全球业务注册中心。

  • WSDL 是 UDDI 使用的语言。

WSDL 使用

WSDL 通常与 SOAP 和 XML Schema 结合使用,以通过 Internet 提供 Web 服务。连接到 Web 服务的客户端程序可以读取 WSDL 以确定服务器上可用的功能。使用的任何特殊数据类型都以 XML 模式的形式嵌入到 WSDL 文件中。然后,客户端可以使用 SOAP 实际调用 WSDL 中列出的功能之一。

理解 WSDL

WSDL 将 Web 服务分解为三个特定的、可识别的元素,一旦定义,就可以组合或重用这些元素。

可以单独定义的 WSDL 的三个主要元素是 –

  • 类型
  • 操作
  • 捆绑

WSDL 文档具有各种元素,但它们包含在这三个主要元素中,可以将它们开发为单独的文档,然后可以将它们组合或重用以形成完整的 WSDL 文件。

在本教程中,我们遵循 CurrencyConverter WSDL:http : //www.webservicex.net

格式和元素

CurrencyConverter WSDL 将如下所示 –

货币换算

回复

绑定元素

WSDL ─ 端口类型

<portType> 元素组合多个消息元素以形成完整的单向或往返操作。例如,<portType> 可以将一个请求和一个响应消息合并为一个请求/响应操作。这在 SOAP 服务中最常用。一个 portType 可以定义多个操作。

例子

端口类型

  • portType 元素定义了一个称为 ConversionRate 的操作。
  • 该操作由单个输入消息 ConversionRateHttpPostIn 组成。
  • 输出消息的操作是 ConversionRateHttpPostOut。

操作模式

WSDL 支持四种基本的操作模式 –

单程

该服务收到一条消息。因此,该操作具有单个输入元素。单向操作的语法是 –

<wsdl:definitions .... >  
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken"> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions> 

请求 ─ 响应

服务接收消息并发送响应。因此,该操作具有一个输入元素,然后是一个输出元素。为了封装错误,还可以指定一个可选的故障元素。请求-响应操作的语法是 –

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
         <wsdl:fault name = "nmtoken" message = "qname"/>* 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions> 

征求 ─ 回应

该服务发送消息并接收响应。因此,该操作具有一个输出元素,然后是一个输入元素。为了封装错误,还可以指定一个可选的故障元素。请求响应操作的语法是 –

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
         <wsdl:fault name = "nmtoken" message = "qname"/>* 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions> 

通知

该服务发送一条消息。因此,该操作具有单个输出元素。以下是通知操作的语法 –

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken"> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions> 

WSDL ─ 绑定与服务

所述<结合>元素提供关于如何具体细节的portType操作实际上将通过线路进行传输。

  • 可以通过多种传输方式(包括 HTTP GET、HTTP POST 或 SOAP)使绑定可用。

  • 绑定提供有关用于传输 portType 操作的协议的具体信息。

  • 绑定提供服务所在位置的信息。

  • 对于 SOAP 协议,绑定是 <soap:binding>,传输是 HTTP 协议之上的 SOAP 消息。

  • 您可以为单个 portType 指定多个绑定。

绑定服务

服务

所述<服务>元素定义由web服务所支持的端口。对于每种支持的协议,都有一个端口元素。服务元素是端口的集合。

Web 服务客户端可以从服务元素中了解以下内容 –

  • 在哪里访问服务,
  • 通过哪个端口访问网络服务,以及
  • 如何定义通信消息。

服务元素包括文档元素以提供人类可读的文档。

<wsdl:service name = "CurrencyConvertor">
   <wsdl:port name = "CurrencyConvertorSoap" binding = "tns:CurrencyConvertorSoap">
      <soap:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:port name = "CurrencyConvertorSoap12"binding = "tns:CurrencyConvertorSoap12>
      <soap12:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:port name = "CurrencyConvertorHttpGet" binding = "tns:CurrencyConvertorHttpGet">
      <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:portname = "CurrencyConvertorHttpPost"binding = "tns:CurrencyConvertorHttpPost">
      <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port> 
</wsdl:service> 

觉得文章有用?

点个广告表达一下你的爱意吧 !😁