Principales diferencias entre los servicios web SOAP y RESTful en Java [duplicate]

9 minutos de lectura

avatar de usuario
Gandalf TormentaCuervo

Por ahora tengo una ligera idea sobre las diferencias entre SOAP y Sosegado servicios.

Mi pregunta es cuándo debo usar SOAP y cuándo debo usar RESTful; ¿Cuál es “mejor” cuando se trata de rendimiento/velocidad o manejo de solicitudes?

Lo estoy implementando por primera vez en RESTful (Java) y quiero saber más al respecto; He tratado con SOAP antes.

Esta es una pregunta de seguimiento a esta publicación.

  • Hay toneladas de preguntas como esta, lo más probable es que sea un duplicado de al menos una de ellas: stackoverflow.com/questions/76595 stackoverflow.com/questions/209905 stackoverflow.com/questions/90451 stackoverflow.com/questions/90451 stackoverflow .com/questions/993184 stackoverflow.com/questions/28950

    – Joaquín Sauer

    25 de enero de 2010 a las 13:56

  • Ver también, SOAP RPC contrast: en.wikipedia.org/wiki/Representational_State_Transfer#Concept

    – dios de la basura

    25 de enero de 2010 a las 16:41


REST casi siempre va a ser más rápido. La principal ventaja de SOAP es que proporciona un mecanismo para que los servicios se describan a sí mismos a los clientes y anuncien su existencia.

REST es mucho más liviano y se puede implementar con casi cualquier herramienta, lo que reduce el ancho de banda y la curva de aprendizaje. Sin embargo, los clientes deben saber qué enviar y qué esperar.

En general, cuando publique una API en el mundo exterior que sea compleja o que pueda cambiar, SOAP será más útil. Aparte de eso, REST suele ser la mejor opción.

  • Desde el lado del consumidor del servicio web, ¿cuándo debería usar REST y cuándo debería usar SOAP? (suponiendo que se proporcionen ambas opciones). Por lo que entiendo, REST debe usarse en los casos en que el consumidor quiera acceder a los servicios web a través de un navegador. Dado que los navegadores pueden entender tanto XML como JSON. Si los servicios web se van a consumir mediante programación, no parece haber ninguna ventaja importante. De hecho, SOAP parece cumplir los requisitos ya que están más organizados (WSDL). Apreciaría tener sus pensamientos sobre esto.

    –Andy Dufresne

    2 de abril de 2013 a las 5:53

  • Andy, si la API es simple y no es probable que las llamadas existentes cambien, REST estará bien. La ventaja de que SOAP tenga este proceso formal para describirse a sí mismo es que si el servicio cambia, lo sabrá de inmediato y podrá adaptarse a él más fácilmente.

    – dj_segfault

    03/04/2013 a las 13:00

  • Swagger puede encargarse de publicar la API para servicios web tranquilos.

    – akhil_mittal

    16 mayo 2017 a las 12:13

  • Me parece que el jabón está basado en un contrato duro y no es fácil jugar con él, pero el resto es fácil de modificar, ya que no hay un contrato fijo, pero sin un documento adecuado puede traer más errores en el sistema, lo que me hace preguntarme si esta desventaja del descanso abruma. los beneficios de ser ligero y fácil de cambiar.

    – pionero

    23 de agosto de 2020 a las 7:23

avatar de usuario
salman khalid

Servicios web REST frente a SOAP

Veo que muchos servicios web nuevos se implementan utilizando una arquitectura de estilo REST en estos días en lugar de una SOAP. Retrocedamos un segundo y expliquemos qué es REST.

¿Qué es un servicio web REST?

El acrónimo REST significa Transferencia de estado representacional, y esto básicamente significa que cada URL única es una representación de algún objeto. Puede obtener el contenido de ese objeto usando HTTP GET, para eliminarlo, luego puede usar POST, PUT o DELETE para modificar el objeto (en la práctica, la mayoría de los servicios usan POST para esto).

¿Quién está usando REST?

Todos los servicios web de Yahoo usan REST, incluidos Flickr y Delicioso.

Las API lo usan, pubsub, bloglines, Technoratiy tanto eBay como Amazon tienen servicios web para REST y SOAP.

¿Quién está usando SOAP?

Google parece ser consistente en la implementación de sus servicios web para usar SOAP, con la excepción de Blogger, que usa XML-RPC. También encontrará servicios web SOAP en muchos software empresariales.

DESCANSO vs JABÓN

Como habrás notado, las empresas que mencioné que usan API REST no han existido por mucho tiempo, y sus API salieron principalmente este año. Entonces, REST es definitivamente la forma moderna de crear un servicio web, si la creación de servicios web alguna vez pudiera estar de moda (seamos realistas, usa jabón para lavarse y descansa cuando está cansado). Las principales ventajas de los servicios web REST son:

  • Ligero: no hay mucho marcado XML adicional Resultados legibles por humanos

  • Fácil de construir: no se requieren juegos de herramientas. SOAP también tiene algunas ventajas:

Fácil de consumir, a veces Rígido, verificación de tipo, se adhiere a un contrato Herramientas de desarrollo Para consumir servicios web, a veces es difícil decidir cuál es más fácil. Por ejemplo de Google AdWords servicio web es muy difícil de consumir (en Fusión fría de todos modos), utiliza encabezados SOAP y una serie de otras cosas que lo hacen un poco difícil. Por el contrario, el servicio web REST de Amazon a veces puede ser complicado de analizar porque puede estar muy anidado y el esquema de resultados puede variar bastante según lo que busque.

Independientemente de la arquitectura que elija, asegúrese de que sea fácil para los desarrolladores acceder a ella y que esté bien documentada.

Freitag, P. (2005). “Servicios web REST vs SOAP”. Recuperado de http://www.petefreitag.com/item/431.cfm el 13 de junio de 2010

  • Deje de publicar este artículo o enlaces a él. Es de 2005, por lo que no es muy relevante. Además, no eres el autor, ¿verdad?

    – John Saunders

    20 de junio de 2012 a las 18:46

  • Si se supone que REST no tiene estado, ¿cómo los usa Yahoo, etc. para sitios web que requieren inicio de sesión? ¿No es que viola la segunda ley de REST (sin estado)?

    – hormiganueva

    31 de marzo de 2013 a las 17:48

  • ¿Este artículo de hace 10 años tiene sentido incluso ahora?

    – akhil_mittal

    31 de diciembre de 2015 a las 4:32

avatar de usuario
kapil das

JABÓN

El Protocolo simple de acceso a objetos (SOAP) es un estándar, un lenguaje XML, que define una arquitectura de mensajes y formatos de mensajes. Es utilizado por los servicios web. Contiene una descripción de las operaciones.

WSDL es un lenguaje basado en XML para describir servicios web y cómo acceder a ellos. Se ejecutará en SMTP, HTTP, FTP, etc. Requiere soporte de middleware y un mecanismo bien definido para definir servicios como WSDL+XSD y WS-Policy. SOAP devolverá datos basados ​​en XML

DESCANSAR

Servicios web de transferencia de estado representacional (RESTful). Son servicios Web de segunda generación.

Los servicios web RESTful se comunican a través de HTTP en lugar de servicios basados ​​en SOAP y no requieren mensajes XML ni definiciones de API de servicio WSDL. Para REST no se requiere middleware, solo se necesita soporte HTTP. Es un estándar WADL, REST puede devolver XML, texto sin formato, JSON, HTML, etc.

avatar de usuario
Kalidoss.M

REST es una arquitectura.
REST dará resultados legibles por humanos.
REST no tiene estado.
Los servicios REST son fácilmente almacenables en caché.

SOAP es un protocolo. Puede correr encima de JMSFTP y HTTP.

avatar de usuario
CharithJ

  1. DESCANSO no tiene WSDL (Web Description Language) definición de interfaz.

  2. REST está sobre HTTP, pero SOAP puede estar sobre cualquier protocolo de transporte como HTTP, FTP, SMTP, JMSetc.

  • el resto tiene WADL como SOAP tiene WSDL

    – hormiga

    29 de febrero de 2012 a las 12:56

  • REST no es solo XML, puede ser cualquier cosa (texto sin formato, JSON, HTML, etc.) que pueda transferir a través de HTTP.

    – GokcenG

    3 de enero de 2013 a las 12:23

  • Creo que SOAP WSDL también está escrito en XML

    – Deepak Lamichane

    4 mayo 2013 a las 13:13

  • REST también se puede implementar para HTTP, FTP, STMP

    – kedar kamthe

    16 de octubre de 2014 a las 4:41

  • REST también puede ser sobre SMTP, FTP, solo necesita un esquema URI. leer – stackoverflow.com/a/10976047/760393

    – Raúl

    2 de diciembre de 2016 a las 7:30

avatar de usuario
Pedro Mortensen

  • DESCANSO significa Transferencia de estado representacional mientras que SOAP significa Simple Object Access Protocol.

  • SOAP define su propio seguridad donde REST hereda la seguridad del transporte subyacente.

  • SOAP no admite el manejo de errores, pero REST tiene incorporado manejo de errores.

  • REST es liviano y no requiere análisis XML. REST puede ser consumido por cualquier cliente, incluso un navegador web con Ajax y JavaScript. DESCANSO consume menos ancho de bandano requiere un encabezado SOAP para cada mensaje.

    • REST es útil sobre cualquier protocolo que proporcione un URI. Ignore el punto 5 para REST como se menciona a continuación en la imagen.

JABÓN vs DESCANSO

  • el resto tiene WADL como SOAP tiene WSDL

    – hormiga

    29 de febrero de 2012 a las 12:56

  • REST no es solo XML, puede ser cualquier cosa (texto sin formato, JSON, HTML, etc.) que pueda transferir a través de HTTP.

    – GokcenG

    3 de enero de 2013 a las 12:23

  • Creo que SOAP WSDL también está escrito en XML

    – Deepak Lamichane

    4 mayo 2013 a las 13:13

  • REST también se puede implementar para HTTP, FTP, STMP

    – kedar kamthe

    16 de octubre de 2014 a las 4:41

  • REST también puede ser sobre SMTP, FTP, solo necesita un esquema URI. leer – stackoverflow.com/a/10976047/760393

    – Raúl

    2 de diciembre de 2016 a las 7:30

avatar de usuario
Pedro Mortensen

DESCANSO vs JABÓN

JABÓN:

► SOAP es un protocolo simple de acceso a objetos que se ejecuta en TCP/UDP/SMTP.
► Mensajes de respuesta de solicitud de lectura y escritura SOAP en formato XML.
► SOAP utiliza interfaz para definir los servicios.
► SOAP es más seguro ya que tiene su propia seguridad y estándares bien definidos.
► SOAP sigue el estilo RPC y Documento para definir servicios web.
► SOAP utiliza SOAP-UI como herramientas de cliente para realizar pruebas.

DESCANSAR

► REST es una transferencia de estado representacional que utiliza protocolos HTTP subyacentes.
► REST no tiene estado.
► REST es un estilo arquitectónico que se utiliza para describir y definir servicios web.
► REST puede leer y escribir mensajes de respuesta de solicitud en JSON/XML/Plain HTML.
► REST usa URI para cada recurso que se usa en el servicio web. Un recurso puede ser un método de texto de imagen, etc.
► REST usa un conjunto de verbos, como GET, POST, PUT, DELETE de HTTP.
► REST es fácil de desarrollar y administrar en comparación con la interfaz de usuario de SOAP.
► REST tiene herramientas de cliente livianas o complementos que se pueden integrar fácilmente dentro de un navegador.
► Los servicios REST se pueden almacenar en caché.

  • REST puede usar cualquier otro protocolo de transporte (FTP, SMTP, etc.), la única condición es que implementen un esquema URI. Ver – stackoverflow.com/a/10976047/760393

    – Raúl

    2 de diciembre de 2016 a las 7:29

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad