jueves, 20 de diciembre de 2018

SOAP, REST eso qué es?

Cuando un proyecto se encuentra en etapa de diseño y se llega a la parte de integraciones, se escucha muy seguido el término web service SOAP o web service REST, pero, ¿a qué se refieren al utilizar estos dos conceptos? Bien, se buscará dejar más claro la diferencia entre ambos de una manera general, sin profundizar demasiado en el tema ya que nos llevaría demasiado tiempo.

SOAP (Simple Object Access Protocol ) se define como un protocolo estándar de comunicación, es decir se está haciendo referencia a un conjunto de reglas que se deben seguir para lograr un intercambio de mensajes entre sistemas basado en la especificación de XML, y se encuentra conformado por tres partes:
·         Sobre (envelope): nos define el mensaje y cómo procesarlo
·         Conjunto de reglas de codificación: Indica el protocolo de aplicación a utilizar como HTTP, SMTP o JMS
·         Independencia: permite cualquier modelo de programación
Ejemplo de mensajes SOAP
El ejemplo presentará la forma se solicita información de un cliente.
Request
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
     <getClientDetails xmlns="http://io3cloud.example.com/ws">
       <clientId>770982</clientId>
     </ getClientDetails >
   </soap:Body>
</soap:Envelope>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">   <soap:Body>     <getClientDetailsResponse xmlns="http://io3cloud.example.com/ws">       <getClientDetailsResult>         <name>James</name>               <lastName>Parker</lastName>         <birthDt>01/01/1980</birthDt>     
         <phone>55667654</phone>     
       </getClientDetailsResult>     </getClientDetailsResponse>   </soap:Body></soap:Envelope>



REST (Representational State Transfer) nos da la descripción de un conjunto de principios basados en una arquitectura por la cual los datos se pueden transmitir a través de una interfaz estandarizada. REST no contiene una capa adicional de mensajería y se centra en las reglas de diseño para la creación de servicios, los servicios REST presentan las siguientes características:
·         Operaciones bien, GET, PUT, DELETE y POST.
·         Sintaxis universal en un sistema REST cada recurso es direccionable únicamente a través de su URI
·         Es posible navegar un recurso REST únicamente siguiendo los enlaces sin necesitar peticiones adicionales
Ejemplo de mensaje REST
La petición se realiza mediante una URL
Respuesta
{
                "name": "James",
                "lastName": "Parker",
                "birthDt": "01/01/1980",
                "phone": "55667654"
}
Como resumen presentamos la siguiente tabla comparativa entre SOAP y REST
SOAP
REST
Es un protocolo
Es una arquitectura
Utiliza interfaces de servicio para exponer la lógica de negocio
Utiliza URI para exponer la lógica del negocio
Define las normas que deben seguirse estrictamente
No define demasiados estándares
Requiere más ancho de banda
Requiere menos ancho de banda
Realiza la definición de todo en su formato
Sólo define su arquitectura
Permite XML como único formato de datos
Permite diferentes formatos, HTML, XML, JSON, etc