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>