Diferencias entre SOAP vs REST
0 Comments
Los servicios web son los responsables entre la comunicación entre máquinas, en muchos casos son los que proveen los datos las aplicaciones front end. Los servicios webs disponen de una API que es consumida para la transferencia de la información, esta API puede tener diferentes arquitecturas. Durante mucho tiempo se utilizo SOAP como el protocolo de comunicación, pero la necesidad de la aparición de desarrollar aplicaciones ligeras ha hecho que aparezca y tome fuerza REST ganando mucha popularidad en la actualidad.
SOAP | REST | |
---|---|---|
Significado | Simple Object Access Protocol | Representational State Transfer |
Diseño | Protocolo estandarizado con reglas predefinidas a seguir. | Estilo arquitectónico con pautas sueltas y recomendaciones. |
Enfoque | Basado en funciones (datos disponibles como servicios, por ejemplo: «getUser») | Controlado por datos (datos disponibles como recursos, por ejemplo, «user»). |
Control de estado | Sin estado de forma predeterminada, pero es posible hacer que una API SOAP sea controlada. | Sin estado (no hay sesiones del lado del servidor). |
Almacenamiento en caché | Las llamadas a la API no se pueden almacenar en caché. | Las llamadas a la API se pueden almacenar en caché. |
Seguridad | WS-Security con soporte SSL. Cumplimiento de ACID incorporado. | Soporta HTTPS y SSL. |
Rendimiento | Requiere más ancho de banda y potencia de cálculo. | Requiere menos recursos. |
Formato de mensaje | Sólo XML. | Texto sin formato, HTML, XML, JSON, YAML y otros. |
Protocolo (s) de transferencia | HTTP, SMTP, UDP, y otros. | Solo HTTP |
Recomendado para | Aplicaciones empresariales, aplicaciones de alta seguridad, entorno distribuido, servicios financieros, pasarelas de pago, servicios de telecomunicaciones. | APIs públicas para servicios web, servicios móviles, redes sociales. |
Ventajas | Alta seguridad, estandarizada, extensibilidad. | Escalabilidad, mejor rendimiento, facilidad de navegación, flexibilidad. |
Desventajas | Menor rendimiento, más complejidad, menos flexibilidad. | Menos seguridad, no apto para entornos distribuidos. |