Diferencia entre REST y WebServices


¿Cuál es la diferencia entre REST y WebService (SOAP), miré la api de Facebook, usan encabezados HTTP y algunos parámetros (probablemente xml o no) y devuelven el resultado en xml, donde SOAP hace exactamente lo mismo, encabezados HTTP + parámetros xml y devuelve encabezados + xml.

REST también requiere algún token autenticado donde else SOAP utiliza la sesión http, que es exactamente el mismo token utilizado para la autenticación y otra información. Todo lo que puedo ver que SOAP es una versión poco avanzada de REST?

¿O hay alguna otra consideración de rendimiento? Leer sobre REST solo habla de un nivel muy alto de comunicación entre el cliente y el servidor, pero incluso SOAP hace exactamente lo mismo. ¿Puede alguien señalarme dónde puede definir el límite correcto de DESCANSO y JABÓN?

Usamos mucho SOAP de forma transparente en.net, sin embargo, solo quiero saber si realmente vale la pena prestar atención al DESCANSO donde actualmente todo se está ejecutando de manera sobresaliente.

Sé que REST es una arquitectura y SOAP es un protocolo pero mi pregunta es en detalle que es actualmente el ASP.NET ¿La implementación WebService de SOAP tiene arquitectura REST?

Author: Keith, 2009-09-18

2 answers

SOAP es un protocolo para enviar/recibir datos a través de HTTP como XML.

Un servicio web típico será unos pocos métodos un WSDL que describe cómo llamarlo. No hay una convención real sobre cómo deben estructurarse, por lo que siempre necesita mucha documentación de API.

Normalmente esto será algo como (para ASP.NET):

  • HTTP POST a mysite.com/products.asmx/ListAllProducts - devuelve la lista XML de productos
  • HTTP POST a mysite.com/products.asmx/GetProduct - devuelve XML para el producto basado en XML SOAP en el contenido publicado
  • HTTP POST a mysite.com/products.asmx/UpdateProduct - cambia el producto basado en XML SOAP en el contenido publicado

REST es más una convención para estructurar todos sus métodos:

  • HTTP GET de mysite.com/products - devuelve XML o JSON listando todos los productos
  • HTTP GET desde mysite.com/products/14 - devuelve XML o JSON para el producto 14
  • HTTP POST a mysite.com/products/14 - cambia el producto 14 a lo que publicas en el formulario HTML.
  • HTTP DELETE a mysite.com/products/14 - elimina el producto 14
  • HTTP PUT a mysite.com/products - añade un nuevo producto

Así que REST funciona más como lo esperarías de las URL del navegador. De esa manera es más natural y como convención es mucho más fácil entender. Todas las API REST funcionan de manera similar, por lo que no pasa tanto tiempo aprendiendo las peculiaridades de cada sistema.

 68
Author: Keith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-24 14:59:37

Para mí, un servicio implementado con un enfoque RESTful gana sobre uno que usa SOAP o RPC en términos de accesibilidad. En un sistema relativamente cerrado donde hay herramientas disponibles para generar stubs y lazos basados en un WSDL, esto no es muy importante. Sin embargo, si desea crear servicios que sean accesibles y disponibles para una amplia gama de clientes, entonces la uniformidad de los servicios REST y la facilidad con la que se pueden consumir es una gran ventaja, es decir, no necesita una pila de RPC pesada, solo la capacidad de realizar solicitudes HTTP.

No estoy seguro de que esto responda totalmente a tu pregunta, pero si, como dices, tienes un sistema que funciona basado en SOAP (y controlas el cliente y el servidor), entonces no veo ninguna razón para cambiar. Además, algunos servicios naturalmente se prestarán más al acceso basado en RPC, en cuyo caso una interfaz SOAP será más apropiada.

En términos de rendimiento, una o más capas se eliminarían efectivamente de la tecnología de cliente y servidor pilas si no se utiliza SOAP, por lo que todas las demás cosas siendo iguales, un servicio que expone una interfaz RESTful ganará allí.

 13
Author: Andy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-18 08:38:14