WSDL - Élément <portType>

le <portType> element combine plusieurs éléments de message pour former une opération complète unidirectionnelle ou aller-retour.

Par exemple, un <portType>peut combiner une demande et un message de réponse en une seule opération de demande / réponse. Ceci est le plus couramment utilisé dans les services SOAP. Un portType peut définir plusieurs opérations.

Prenons un morceau de code du chapitre Exemple WSDL -

<portType name = "Hello_PortType">
   <operation name = "sayHello">
      <input message = "tns:SayHelloRequest"/>
      <output message = "tns:SayHelloResponse"/>
   </operation>
</portType>
  • L'élément portType définit une seule opération, appelée sayHello .

  • L'opération se compose d'un seul message d'entrée SayHelloRequest et d'un

  • message de sortie SayHelloResponse .

Modèles de fonctionnement

WSDL prend en charge quatre modèles de fonctionnement de base -

Une manière

Le service reçoit un message. L'opération a donc un seul élément d' entrée . La grammaire pour une opération unidirectionnelle est -

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

Demande de réponse

Le service reçoit un message et envoie une réponse. L'opération a donc un élément d' entrée , suivi d'un élément de sortie . Pour encapsuler les erreurs, un élément fault facultatif peut également être spécifié. La grammaire pour une opération de demande-réponse est -

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

Sollicitation-réponse

Le service envoie un message et reçoit une réponse. L'opération a donc un élément de sortie , suivi d'un élément d' entrée . Pour encapsuler les erreurs, un élément fault facultatif peut également être spécifié. La grammaire pour une opération de sollicitation-réponse est -

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

Notification

Le service envoie un message. L'opération a donc un seul élément de sortie . Voici la grammaire pour une opération de notification -

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