2010-02-18 26 views
15

¿Qué significa que los servicios web tranquilos son diferentes de los otros servicios web como SOAP?Restful vs Other Web Services

+0

posible duplicado de [¿Por qué necesitamos servicios web RESTful?] (Http://stackoverflow.com/questions/1368014/why-do-we-need-restful-web-services) – bummi

Respuesta

28

El debate sobre los servicios web de ninguna manera es completo, pero hay algunos elementos que se destacan.

Los servicios web RESTful son una "familia" de servicios web. Algunos lo llamarían una arquitectura.

Los servicios web RESTful usan el protocolo HTTP para realizar solicitudes desde un servicio web. Usan los verbos HTTP: GET, POST, PUT y DELETE (y otros, a veces). Las solicitudes en sí son a URL que representan recursos ... a veces las solicitudes contendrán datos en el cuerpo que podrían ser HTML, JSON, datos binarios u otros.

Un servicio web puramente RESTful solo requiere el URL y el verbo HTTP para describir la acción solicitada ... los datos del cuerpo suelen ser una carga para involucrarse en la acción solicitada ... no debe dictar la acción solicitada

SOAP, por otro lado, es en realidad un protocolo. Generalmente se transporta a través de HTTP, pero la solicitud HTTP es solo un método para llevar el paquete SOAP al manejador necesario. El contenido de la solicitud SOAP describe lo que quiere que el cliente realice. Contiene toda la información necesaria.

Son dos formas muy diferentes de implementar servicios web. Si hace la pregunta "¿Qué es mejor?", Es probable que obtenga opiniones fuertes de ambos lados. Te sugiero que investigues más y tomes una decisión.

12

A RESTful servicio web (también llamado RESTful API web) es un servicio web simple implementado utilizando HTTP y los principios de REST. Tal servicio web se puede considerar como una colección de recursos. La definición de tal servicio web puede ser pensado como que comprende tres aspectos:

  • El URI base para el servicio web, como http://example.com/resources/
  • El tipo MIME de los datos soportados por el servicio web. Suele ser JSON, XML o YAML, pero puede ser cualquier otro tipo MIME válido.
  • Conjunto de operaciones admitidas por el servicio web utilizando métodos HTTP (por ejemplo, POST, GET, PUT o DELETE).

de SOAP, definido originalmente como Simple Object Access Protocol, es una especificación de protocolo para el intercambio de información estructurada en la implementación de Servicios Web en redes informáticas. Se basa en el lenguaje de marcado extensible (XML) como su formato de mensaje, y por lo general se basa en otros protocolos de la capa de aplicación (principalmente llamada de procedimiento remoto (RPC) y HTTP) para la negociación y transmisión de mensajes. Este protocolo basado en XML consta de tres partes:

  • un sobre - que define lo que es en el mensaje y cómo procesarlo -
  • un conjunto de reglas de codificación para expresar instancias de tipos de datos definidos por la aplicación,
  • y una convención para representar llamadas de procedimiento y respuestas.

referencias:

Por cierto, una simple búsqueda en Google podría proporcionar respuestas para usted ...

+0

-1 viaje rápido a la wiki, eh. No estoy seguro de cómo me siento con respecto a las respuestas de cortar y pegar de las personas. Ni siquiera una referencia a http://en.wikipedia.org/wiki/Representational_State_Transfer. Un poco hace que el tiempo que paso sin valor. –

+0

+2 para referencias. –

2

servicios REST se centran en la velocidad y simplicidad, lo que elimina la sobrecarga de SOAP para las transacciones simples que muchos servicios Web requieren. Sin embargo, un servicio implementado de esta manera es muy específico de HTTP, y le resultará difícil usarlo fuera de ese contexto.

servicios SOAP ofrecen más funciones fuera de la caja, el más importante (en mi humilde opinión, por supuesto) de los cuales es el descubrimiento. La capacidad de agregar una referencia a un servicio SOAP en casi cualquier entorno de desarrollo y hacer que genere automáticamente una clase proxy que oculte las complejidades HTTP subyacentes, incluso hasta el punto de serializar tipos no triviales, es muy, muy útil.

siento que estos dos enfoques para el desarrollo de servicios web tienen su lugar. Para los requisitos de AJAX que no requieren nada complejo, tiendo a implementarlo como un manejador de HTTP (ASP.NET). Todo lo que necesita ser llamado desde otra aplicación, o desde múltiples lugares dentro de la misma aplicación, implemento como un servicio SOAP debido a la encapsulación de protocolo que proporciona, así como la capacidad de invocar el uso del objeto subyacente sin la sobrecarga HTTP donde tiene sentido

4

Ok, hay una gran cantidad de conocimiento en Stack Overflow sobre este tema.

Creo que el mejor artículo que articula el espíritu de REST y cómo se compara con tecnologías como SOAP es How I explained REST to my wife.

A diferencia de SOAP, REST no es un estándar que es más bien un enfoque que se centra alrededor de Recursos y cosas que se pueden hacer a los recursos. Los verbos HTTP GET, POST, PUT y DELETE son acciones típicas que puede aplicar contra cualquier recurso. SOAP es un estándar que ignora estos verbos y ha inventado un protocolo más completo que funciona sobre el verbo HTTP POST más popular para lograr la máxima interoperabilidad. La mayoría de las veces, esta complejidad adicional es innecesaria y una simple solicitud HTTP GET para un recurso normalmente sería suficiente sobre lo que podría ser potencialmente 1 KB + de SOAP + XML para lograr un resultado equivalente.

También puede comprobar fuera de Roy Fielding's blog (el inventor de REST) ​​para obtener más información acerca de lo que significa.

+0

Enlace de Greeeeeat en la explicación de la esposa, ¡eso es un marcador seguro! – jaywon

+0

¡Guau para la explicación de la esposa! No puedo creer que obtuve el mismo voto. ¡Vale un millón! – Achow

+2

Lamentablemente ya no está disponible, el autor lo eliminó. – Tanoh

1

1) REST es más simple y fácil de usar que SOAP 2) REST usa el protocolo HTTP para producir o consumir servicios web mientras SOAP usa XML. 3) REST es liviano en comparación con SOAP y la opción preferida en dispositivos móviles y PDA. 4) REST admite diferentes formatos como texto, JSON y XML, mientras que SOAP solo es compatible con XML. 5) La llamada a servicios web REST se puede almacenar en la memoria caché para mejorar el rendimiento.