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
|