WSDL - Elemento <portType>
los <portType> El elemento combina varios elementos de mensaje para formar una operación completa de ida o de ida y vuelta.
Por ejemplo, un <portType>puede combinar una solicitud y un mensaje de respuesta en una sola operación de solicitud / respuesta. Esto se usa más comúnmente en los servicios SOAP. Un portType puede definir varias operaciones.
Tomemos un fragmento de código del capítulo Ejemplo de WSDL:
<portType name = "Hello_PortType">
<operation name = "sayHello">
<input message = "tns:SayHelloRequest"/>
<output message = "tns:SayHelloResponse"/>
</operation>
</portType>
El elemento portType define una sola operación, llamada sayHello .
La operación consta de un único mensaje de entrada SayHelloRequest y un
mensaje de salida SayHelloResponse .
Patrones de operación
WSDL admite cuatro patrones básicos de funcionamiento:
De una sola mano
El servicio recibe un mensaje. Por tanto, la operación tiene un único elemento de entrada . La gramática para una operación unidireccional es:
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken">
<wsdl:input name = "nmtoken"? message = "qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
Solicitar respuesta
El servicio recibe un mensaje y envía una respuesta. Por tanto, la operación tiene un elemento de entrada , seguido de un elemento de salida . Para encapsular errores, también se puede especificar un elemento de falla opcional . La gramática para una operación de solicitud-respuesta es:
<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-respuesta
El servicio envía un mensaje y recibe una respuesta. Por tanto, la operación tiene un elemento de salida , seguido de un elemento de entrada . Para encapsular errores, también se puede especificar un elemento de falla opcional . La gramática para una operación de solicitud-respuesta es:
<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>
Notificación
El servicio envía un mensaje. Por tanto, la operación tiene un único elemento de salida . A continuación se muestra la gramática para una operación de notificación:
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name = "nmtoken">
<wsdl:output name = "nmtoken"? message = "qname"/>
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>