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>