> Manuales > Web Services con PHP

Describimos el protocolo de comunicación SOAP y ofrecemos una serie de sus características más interesantes.

Es un protocolo que permite la comunicación entre aplicaciones a través de mensajes por medio de Internet. Es independiente de la plataforma, y del lenguaje. Esta basado en XML y es la base principal de los Web Services. Los mensajes SOAP son documento XML propiamente dicho, pero esto lo veremos más adelante cuando veamos un ejemplo de un mensaje SOAP.

Veamos como es la estructura básica del protocolo y la correspondiente explicación:

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
   Soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
      <soap:Header>
         ...
      </soap:Header>
      <soap:Body>
         ...
         <soap:Fault>
            ...
         </soap:Fault>
      </soap:Body>
</soap:Envelope>

Explicación del código anterior:

<?xml version="1.0"?>
Como podemos ver en esta linea SOAP es un documento XML, y como tal, debe comenzar con el tag <?xml….?> y la versión correspondiente.

<soap:Envelope
Aquí se indica que comienza el envelope (sobre) del mensaje

xmlns:soap = "http://www.w3.org/2001/12/soap-envelope"
Un mensaje SOAP debe contener siempre un elemento envelope asociado con el namespace (espacio de nombres) http://www.w3.org/2001/12/soap-envelope

Soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
En esta línea lo que se hace es indicar donde se encuentran definidos los tipos de datos utilizados en el documento.

<soap:Header>
Esta línea indica el comienzo del Header (encabezado). En esta sección se incluye información específica del mensaje, como puede ser la autenticación.

</soap:Header>
Como todo documento XML los tags que son abiertos deben ser cerrados, esta línea indica la finalización del Header (encabezado).

<soap:Body>
Aquí comienza el cuerpo del mensaje, en esta sección se incorpora toda la información necesaria para el nodo final. Por ejemplo, los parámetros para la ejecución, o la respuesta a una petición.

<soap:Fault>
Cualquier tipo de fallo que se produzca será notificado en esta sección. La cual esta contenida dentro del cuerpo del mensaje.

</soap:Fault>
Cierre de la sección Fault.

</soap:Body>
Indica el final del cuerpo del mensaje.

</soap:Envelope>
Fin del mensaje SOAP.

Orlando Fabián Brea

Manual