WSDL - Elemento <portType>

o <portType> O elemento combina vários elementos de mensagem para formar uma operação unidirecional ou de ida e volta completa.

Por exemplo, um <portType>pode combinar uma solicitação e uma mensagem de resposta em uma única operação de solicitação / resposta. Isso é mais comumente usado em serviços SOAP. Um portType pode definir várias operações.

Vamos pegar um pedaço de código do capítulo de exemplo WSDL -

<portType name = "Hello_PortType">
   <operation name = "sayHello">
      <input message = "tns:SayHelloRequest"/>
      <output message = "tns:SayHelloResponse"/>
   </operation>
</portType>
  • O elemento portType define uma única operação, chamada sayHello .

  • A operação consiste em uma única mensagem de entrada SayHelloRequest e um

  • mensagem de saída SayHelloResponse .

Padrões de Operação

WSDL suporta quatro padrões básicos de operação -

Mão única

O serviço recebe uma mensagem. A operação, portanto, tem um único elemento de entrada . A gramática para uma operação unilateral é -

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

Pedido-resposta

O serviço recebe uma mensagem e envia uma resposta. A operação, portanto, tem um elemento de entrada , seguido por um elemento de saída . Para encapsular erros, um elemento opcional de falha também pode ser especificado. A gramática para uma operação de solicitação-resposta é -

<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>

Solicitar-resposta

O serviço envia uma mensagem e recebe uma resposta. A operação, portanto, tem um elemento de saída , seguido por um elemento de entrada . Para encapsular erros, um elemento opcional de falha também pode ser especificado. A gramática para uma operação de solicitação de resposta é -

<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>

Notificação

O serviço envia uma mensagem. A operação, portanto, tem um único elemento de saída . A seguir está a gramática para uma operação de notificação -

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