viernes, 8 de noviembre de 2019

Diferencias entre SOAP 1.1 y SOAP 1.2: Guia rapida


Hoy vamos a ver rápidamente cuales son las diferencias principales entre un servicio SOAP 1.1 y un servicio SOAP 1.2. Nos vamos a centrar simplemente en las características principales, sin entrar en profundidad en todo lo que ello implica. Y para el ejemplo utilizaremos un servicio de administración de WSO2. 

Si queremos realizar una llamada SOAP 1.1, debemos tener en cuenta lo siguiente:
  • La llamada debe ser a un endpoint de tipo SOAP 1.1. 
  • Debemos incluir la cabecera SOAP Action apropiada. En ella ira incluida el identificador de la operación que queremos invocar. Es muy posible que un mismo endpoint tenga diferentes operaciones. 
  • Debemos incluir la cabecera Content-Type con el valor text/xml.
  • El namespace del envelope es http://schemas.xmlsoap.org/soap/envelope/.
https://localhost:8243/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint

SOAPAction: urn:login
Content/Type: text/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:aut="http://authentication.services.core.carbon.wso2.org">
   <soapenv:Header/>
   <soapenv:Body>
      <aut:login>
         <aut:username>admin</aut:username>
         <aut:password>admin</aut:password>
         <aut:remoteAddress>localhost</aut:remoteAddress>
      </aut:login>
   </soapenv:Body>
</soapenv:Envelope>

En cambio si queremos realizar una llamada SOAP 1.2 debemos tener en cuenta lo siguiente:
  • La llamada debe ser a un endpoint de tipo SOAP 1.2.
  • No es obligatorio incluir la cabecera SOAP Action
  • La cabecera Content-Type debe ser application/soap+xml.
  • El namespace asociado para el envelope es http://www.w3.org/2003/05/soap-envelope.
https://localhost:8243/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap12Endpoint

Content-Type: application/soap+xml

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" 
xmlns:aut="http://authentication.services.core.carbon.wso2.org">
   <soap:Header/>
   <soap:Body>
      <aut:login>
         <aut:username>admin</aut:username>
         <aut:password>admin</aut:password>
         <aut:remoteAddress>localhost</aut:remoteAddress>
      </aut:login>
   </soap:Body>
</soap:Envelope>

Como veis muy sencillito. Si quereis saber algo mas aqui teneis documentación oficial. 

No hay comentarios:

Publicar un comentario