WSDL - Elemento <portType>

Il <portType> element combina più elementi del messaggio per formare un'operazione completa di sola andata o andata e ritorno.

Ad esempio, a <portType>può combinare una richiesta e un messaggio di risposta in un'unica operazione di richiesta / risposta. Questo è più comunemente usato nei servizi SOAP. Un portType può definire più operazioni.

Prendiamo un pezzo di codice dal capitolo WSDL Example -

<portType name = "Hello_PortType">
   <operation name = "sayHello">
      <input message = "tns:SayHelloRequest"/>
      <output message = "tns:SayHelloResponse"/>
   </operation>
</portType>
  • L'elemento portType definisce una singola operazione, chiamata sayHello .

  • L'operazione consiste in un singolo messaggio di input SayHelloRequest e un file

  • messaggio di output SayHelloResponse .

Modelli di funzionamento

WSDL supporta quattro modelli di funzionamento di base:

Senso unico

Il servizio riceve un messaggio. L'operazione ha quindi un unico elemento di input . La grammatica per un'operazione a senso unico è:

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

Richiedere risposta

Il servizio riceve un messaggio e invia una risposta. L'operazione ha quindi un elemento di input , seguito da un elemento di output . Per incapsulare gli errori, è anche possibile specificare un elemento fault opzionale . La grammatica per un'operazione di richiesta-risposta è:

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

Sollecitare-risposta

Il servizio invia un messaggio e riceve una risposta. L'operazione ha quindi un elemento di output , seguito da un elemento di input . Per incapsulare gli errori, è anche possibile specificare un elemento fault opzionale . La grammatica per un'operazione di sollecitazione-risposta è:

<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

Il servizio invia un messaggio. L'operazione ha quindi un unico elemento di output . Di seguito è riportata la grammatica per un'operazione di notifica:

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