Cuándo debemos utilizar Web service en SOAP y cuándo usar REST?
¿Cuál es mejor?
SOAP, acrónimo de Simple Object Access Protocol, ha sido por muchos años el enfoque dominante en la Arquitectura Orientada a Servicios (SOA) para muchas organizaciones. Se convirtió en el protocolo predilecto para lograr la interoperabilidad entre aplicaciones. Sin embargo, su expansión se ha visto rezagada por una segunda alternativa de computación distribuida llamada REST (Representational State Transfer) que si bien existe desde que apareció el protocolo HTTP (es decir, por los años 1991), ha tomado mucha relevancia en la última década, siendo usado en casi un 70% de las API’s públicas.
Pero, ¿Cuál es mejor?, ¿Qué protocolo de comunicación debo usar?. Para responderlas, hay que comprender como funciona cada una de ellas y que caracteristicas las diferencia.
¿Por qué SOAP?
SOAP es un protocolo maduro con una especificación completa y compleja, capaz de dar soluciones a casi cualquier necesidad en lo que a comunicaciones se refiere. Ha sido diseñado para exponer operaciones individuales denominados web services. Una de las razones por la que SOAP aún sigue vigente en muchas empresas, es que SOAP brinda un soporte de comunicación de los sistemas legados de una organización.
Otras consideraciones a tener en cuenta son:
SOAP es una buena alternativa para aplicaciones que requieran comunicarse mediante contratos para su API y el consumidor, ya que puede imponer el uso de contratos formales mediante el uso de WSDL (Web Service Description Language).
La seguridad es otro de los puntos fuertes de los servicios SOAP. El WS-RM o Web Service Reliable Messaging describe un protocolo que le permite a SOAP incrementar la seguridad en la ejecución y procesamiento asíncrono de mensajes.
SOAP trabaja las operaciones con estado. SOAP ha sido diseñado para apoyar la gestión del estado en la comunicación.
¿Por qué REST?
REST es un estilo de arquitectura de software fácil de entender, soportado sobre el protocolo HTTP y sus métodos básicos de mantenimiento, permitiendo que sea fácil codificar y documentar aplicaciones usando servicios REST.
Además, REST hace un uso eficiente del ancho de banda, ya que es mucho más ligero que usar SOAP. A diferencia de SOAP, REST no almacena el estado y las lecturas a sus servicios puede almacenarse en caché para mejorar el rendimiento y escalabilidad.
Es compatible con muchos formatos de datos para intercambiar información pero el formato predominante para los navegadores web es JSON.
REST se centra en operaciones basada en recursos, heredando las operaciones HTTP (GET, PUT, UPDATE, DELETE, POST). Esto hace que muchos programadores de aplicaciones web y navegadores se sientan familiarizado con REST.
La simplicidad que ofrece REST es una de las razones más fuertes para que grandes empresas como Google, Facebook y Amazon estén moviendo sus APIs SOAP a APIs RESTFul.
Es muy usado en aplicaciones que requieran un alto número de mensajes de ida y vuelta, además de aplicaciones que por algún motivo dejan de responder,es ahí donde REST permite activar su proceso de re-intento.
REST permite llamadas fáciles y rápidas mediante una dirección URL.