REST vs SOAP
¿REST o SOAP? ¿Cuáles son sus diferencias? ¿Cuáles son las ventajas de utilizar uno u otro? En este artículo te lo voy a aclarar.
Por si no lo sabes, tanto SOAP como REST se utilizan para desarrollar Servicios Web, donde se producen un envío de solicitudes y respuestas entre un cliente y un servidor, intercambiando datos. A continuación, definiré brevemente ambas tecnologías:
¿Qué es SOAP? Sus siglas significan Simple Object Access Protocol. Es un protocolo de comunicación, normalmente vía HTPS (Protocolo de Transferencia de Hipertexto), aunque también puede ser enviado por FTP, POP3, TCP, Colas de mensajería (JMS, MQ, etc). El intercambio de mensajes se realiza mediante un fichero con estructura XML (Lenguaje de Marcado Extensible) llamado WSDL (Web Services Description Language), en el cual se define un esquema para los mensajes que se intercambiarán entre el cliente y el servicio.
¿Qué es REST? Sus siglas significan Transferencia de Estado Representacional. No es un protocolo de comunicación, sino una definición de arquitectura donde la comunicación se realiza vía HTTP utilizando los métodos GET, POST, PUT, DELETE y PATCH. La respuesta de esos métodos admiten formatos como JSON (Notación de Objeto de JavaScript), XML, HTML o TEXTO PLANO, entre otros. Así, cuando se habla de aplicación RESTful quiere decir que implementa este tipo de arquitectura.
Diferencias entre SOAP y REST
SOAP | REST |
Es un Protocolo de comunicación | Es una Definición de arquitectura |
Los métodos se definen dentro del fichero WSDL con formato XML | Utiliza ciertos métodos que proporciona HTTP para comunicarse (GET, POST, PUT, DELETE y PATCH) |
Formato de mensajes de petición presentan una estructura XML | La solicitud REST consiste en una cadena URI simple con una consulta |
Formato de mensajes de respuesta: XML | Formato de mensajes de respuesta: JSON, XML, HTML, TEXTO PLANO, etc |
En Java se utiliza la librería JAX-WS | En Java se utiliza la librería JAX-RS |
SOAP no puede utilizar REST | REST puede utilizar SOAP |
Ventajas de SOAP
- Utiliza un formato simple en sus mensajes: XML.
- Utiliza los protocolos HTTP, SMTP o JMS para el transporte de datos.
- A través del WSDL se pacta un contrato entre cliente y servicio.
- Incluye manejo de errores.
- Está más estandarizado para el desarrollo de ciertos servicios web, debido a su seguridad.
- Usa WS-Security que define mecanismos para proteger la integridad y confidencialidad en los mensajes.
Ventajas REST
- REST es muy eficiente, ya que pueden utilizarse mensajes pequeños.
- Es fácil de aprender para el usuario que comience a trabajar con él.
- Está protegido por el protocolo estándar OAuth2.
- Ofrece posibilidad de incorporan memoria caché en aplicaciones HTTP.
- No está restringido al envío de mensajes XML únicamente.
¿Cuándo utilizar SOAP y cuándo REST?
En la actualidad ambas tecnologías son muy utilizadas. Habrá que hacer un análisis para decidir cuál nos interesa más.
Aunque REST ha ido ganando terreno en los últimos años por su simplicidad y ligereza, SOAP sigue siendo muy utilizado cuando se requiere un extra en seguridad.