¿Cuáles son las ventajas del servicio web basado en SOAP sobre el servicio web REST Base y viceversa?

SOAP: protocolo basado en XML para acceder a servicios web, tecnología independiente del idioma en aplicaciones distribuidas integradas.

  • Descripción universal, descubrimiento e integración: actúa como un directorio de interfaces de servicio web descrito en lenguaje WSDL
  • Lenguaje de descripción de servicios web WSDL: documento xml que contiene información sobre los servicios web, como el nombre del método, el parámetro del método y cómo invocar el servicio. WSDL es parte del registro UDDI. Actúa como una interfaz entre las aplicaciones que desean interactuar en función de los servicios web.
  • Seguridad del servicio web: los servicios web SOAP se consideran un servicio web seguro con su implementación de seguridad denominada WS Security
  • Independencia de idioma y plataforma: los servicios web SOAP se pueden desarrollar utilizando diversos lenguajes de programación y se pueden implementar en cualquier plataforma
  • Rendimiento: protocolo basado en XML, requiere más ancho de banda de red y asignación de recursos en comparación con otros servicios web
  • WSDL: único mecanismo estándar para definir y descubrir servicios web SOAP

RESTful – REST – transferencia de estado de representación – considerada una alternativa eficiente de rendimiento a los servicios web SOAP. REST es un estilo arquitectónico, no un protocolo.

  • Rendimiento: mejor eficiencia de rendimiento en comparación con SOAP, ya que no tienen espectros estrictos, consumen menos ancho de banda de red y asignación de recursos para el intercambio de información.
  • Independencia de lenguaje y plataforma
  • Soporte para formatos de datos versátiles: XML, JSON, etc.

SOAP es un estándar, mientras que REST es un estilo arquitectónico. Con SOAP, usted se compromete con las decisiones tomadas por el comité estándar de SOAP. Esas decisiones son buenas para el propósito en que se tomaron, es decir, la interoperabilidad. Las implementaciones de SOAP tienden a ser fácilmente interoperables. Dicho esto, SOAP es el más adecuado para ser utilizado dentro de la intranet, por diseño no escala bien en una implementación a escala de Internet.

REST es un estilo arquitectónico y lo obliga a diseñar la API de su sistema con ciertas restricciones que los hacen más fáciles de escalar. Fue creado con el objetivo de crear un sistema distribuido en todo el mundo, es decir, web / www. Las opciones que le impone (comunicación sin estado, desacoplamiento entre el servidor y el cliente, arquitectura en capas) lo hacen encontrar un diseño que será escalable como la web. La representación de su objeto se distribuirá inherentemente, ya que son hipermedia y se supone que se vinculan entre sí, su cliente y servidor y servidores proxy se desacoplarán debido a la restricción de HATEOS que le obliga a diseñar de tal manera que toda la información que necesita El cliente está presente en el hipermedia y en el contexto en el que se está utilizando para moverse de un estado a otro y restringir explícitamente cualquier información fuera de banda.

Dicho esto, REST no es una opción para cada tipo de servicio web. Te obliga a tomar una serie de decisiones de diseño por ti mismo y te da una dirección general que te permitirá crear un diseño escalable. Si el tipo de escala que REST ofrece no es una prioridad para su diseño, pero la interoperabilidad o los marcos listos para usar son una prioridad, entonces la API basada en SOAP puede ser una mejor opción. Piense en un sistema de contabilidad a medida para ser utilizado dentro de la red corporativa de un banco de tamaño mediano. Puede ser SOAP se adapta mejor allí.

Sin embargo, si está haciendo un servicio, digamos como Facebook, que será utilizado por 7 mil millones de personas a través de Internet, entonces es posible que deba invertir en un diseño RESTful API.

No estoy de acuerdo con que SOAP sea inherentemente más seguro o confiable. Tanto REST como SOAP pueden usarse de manera insegura o poco confiable. Sin embargo, después de haber usado ambos, hay potencialmente algunas ventajas de usar SOAP:

  • Puede usar una escritura fuerte para variables en SOAP, mientras que no puede hacerlo en REST.
  • Generalmente puede importar el WSDL de SOAP a su IDE para saber instantáneamente cuál es la sintaxis de llamada para una API.

Sin embargo, creo que los beneficios de REST superan con creces las ventajas que tiene SOAP. Y SOAP es generalmente una tarea difícil de implementar en comparación con REST. (No entraré en detalles sobre los beneficios de REST ya que se pueden encontrar fácilmente en otros lugares).

Según mi experiencia en Rest:
1. Elegir Rest Services siempre es mejor que el jabón, ya que tiene tantas cosas como HATEOS y DATA Rest siempre listos para usar que todo lo que necesitamos para agregar algunas dependencias y anotaciones y el trabajo se realiza donde SOAP no es un marco , es un protocolo, por lo que no tendrá mucha flexibilidad
2.Rest es más fácil de aprender, desarrollar e integrar con cualquier marco existente.
y no necesitamos tener problemas para crear stubs, generar wsdl, etc.
3.Para cualquiera que sea nuevo en el proyecto, puede encontrar fácilmente el código legible y comprensible para Rest Services, ya que todo está escrito en Java y Json normales, lo que es común incluso para cualquier programador principiante
4. Todo está basado en enlaces, por lo que las pruebas también son fáciles. Solo presiona la url y depúrala y encuentra la respuesta.
5. podemos JSON con Rest, que es el enfoque más preferido tanto para el desarrollador como para el cliente. Soap solo usa XML, que es un lenguaje, no una representación, por lo que nuevamente aumenta la curva de aprendizaje e implementación de XML con Soap.

1.) REST es mucho más liviano y se puede implementar utilizando casi cualquier herramienta. Cuando publique una API en el mundo exterior que sea compleja o que pueda cambiar, SOAP será más útil.

2.) Si su aplicación necesita un nivel garantizado de confiabilidad y seguridad, SOAP ofrece estándares adicionales para garantizar este tipo de operación.

3.) El servicio web SOAP siempre realiza una operación POST mientras que con REST puede elegir métodos http específicos como GET, POST, PUT, DELETE.

Agregaría a lo que ya respondió Kshitij Soni que los Servicios Web ofrecen metadatos automatizados a través de WSDL. Por otro lado, uno podría enriquecer los servicios ReST a través de: json-schema, swagger, RAML y otro formato de descripción.