Diferencias entre REST y SOAP

Este artículo analiza algunos aspectos de las diferencias básicas entre REST y SOAP.

Vaya ... en realidad compararlos es un poco como comparar manzanas con naranjas, ya que SOAP es un formato de protocolo basado en XML, mientras que REST es un enfoque arquitectónico.



Aprenderás


  • ¿Qué es REST?
  • ¿Qué es el jabón?
  • ¿Cuál es la diferencia entre REST y SOAP?

API REST


Este es el segundo artículo de una serie de artículos sobre la API REST:

  • Introducción a la API REST - Servicios web RESTful
  • Diferencias entre REST y SOAP
  • Desarrollo de API REST: ¿qué es Contract First (contrato primero)?
  • Desarrollo de API REST: ¿qué es Code First (código primero)?
  • API REST - ¿Qué es HATEOAS?
  • Recomendaciones API REST: ejemplos de diseño de servicios web en Java y Spring

DESCANSO Y JABÓN


REST y SOAP no son realmente comparables. REST es un estilo arquitectónico. SOAP es un formato de mensajería. Comparemos las implementaciones populares de los estilos REST y SOAP.

  • Ejemplo de implementación RESTful : JSON sobre HTTP
  • Ejemplo de implementación SOAP : XML sobre SOAP sobre HTTP

En el nivel superior, SOAP restringe la estructura de sus mensajes, mientras que REST es un enfoque arquitectónico que se enfoca en usar HTTP como protocolo de transporte.

  • La especificidad de SOAP es un formato de intercambio de datos. Con SOAP, siempre es SOAP-XML, que es XML que incluye:
    - Sobre (sobre): el elemento raíz que define el mensaje y el espacio de nombres utilizado en el documento,
    - Encabezado (encabezado): contiene atributos del mensaje, por ejemplo: información de seguridad o información de enrutamiento de red,
    - Cuerpo (cuerpo): contiene un mensaje intercambiado entre aplicaciones,
    - Falla: un elemento opcional que proporciona información sobre los errores que ocurrieron durante el procesamiento del mensaje. Tanto la solicitud como la respuesta deben cumplir con la estructura SOAP.
  • La especificidad de REST es el uso de HTTP como protocolo de transporte. Implica el mejor uso de las características proporcionadas por HTTP: métodos de solicitud, encabezados de solicitud, respuestas, encabezados de respuesta, etc.

Formato de mensajes


  • En SOAP, utiliza el formato SOAP XML para solicitudes y respuestas.
  • No existe dicho formato fijo en REST. Puede intercambiar mensajes basados ​​en XML, JSON o cualquier otro formato conveniente. JSON es el más popular entre los formatos utilizados.

Definiciones de servicio


  • SOAP utiliza WSDL (lenguaje de descripción de servicios web), un lenguaje basado en XML para describir y acceder a servicios web.
  • REST no tiene un lenguaje de definición de servicio estándar. A pesar de que WADL fue uno de los primeros estándares propuestos, no es muy popular. Más popular es el uso de Swagger o Open API.

Transporte


SOAP no impone ninguna restricción sobre el tipo de protocolo de transporte. Puede usar el protocolo Web HTTP o MQ.

REST implica el mejor uso del protocolo de transporte HTTP

Facilidad de implementación


Los servicios web RESTFful son generalmente mucho más fáciles de implementar que los servicios web basados ​​en SOAP.

  • REST generalmente usa JSON, que es más fácil de analizar y procesar. Además de esto, REST no requiere una definición de servicio para proporcionar un servicio web.
  • Sin embargo, en el caso de SOAP, debe definir su servicio utilizando WSDL, y hay muchos gastos generales al procesar y analizar mensajes SOAP-XML.

También hay un video del autor sobre este tema.

Resumen


En este artículo, hemos examinado en detalle las diferencias entre REST y SOAP.

Lectura adicional


5 cursos para aprender servicios web RESTful con Java y Spring en 2019

10 consejos de prueba de API para principiantes (SOAP y REST)

Source: https://habr.com/ru/post/483204/


All Articles