resto debe ser utilizado si es muy importante que minimizar el acoplamiento entre los componentes de cliente y servidor en una aplicación distribuida.
Este puede ser el caso si su servidor va a ser utilizado por muchos clientes diferentes que no tiene control. También puede ser el caso si desea poder actualizar el servidor regularmente sin necesidad de actualizar el software del cliente.
Puedo asegurarle que lograr este bajo nivel de acoplamiento es no es fácil de hacer. Es fundamental seguir todas las restricciones de REST para tener éxito. Mantener una conexión puramente sin estado es difícil. Elegir los tipos de medios adecuados y exprimir sus datos en los formatos es complicado. Crear sus propios tipos de medios puede ser aún más difícil.
La adaptación del comportamiento del servidor enriquecido en la interfaz HTTP uniforme puede ser confusa y, a veces, parece pedante en comparación con el enfoque RPC relativamente sencillo.
A pesar de las dificultades, los beneficios son que tiene un servicio que un desarrollador de cliente debería poder entender fácilmente debido al uso constante del protocolo HTTP. El servicio debe ser fácilmente detectable debido a hypermedia y el cliente debe ser extremadamente resistente a los cambios en el servidor.
Las ventajas de hipermedia y la evitación del estado de la sesión hace que el balanceo de carga sea simple y sea posible el partición del servicio. La estricta conformidad con las reglas HTTP hace que la disponibilidad de herramientas como depuradores y proxies de almacenamiento en caché sea algo maravilloso.
actualización
Me parece que el descanso es otra 'última palabra de moda' (o puedo ser totalmente equivocado porque no tengo jamás RESTO visto en la práctica).
Creo que REST se ha puesto de moda porque las personas que intentan hacer proyectos de tipo SOA han descubierto que al usar la pila SOAP no se dan cuenta de los beneficios que se les prometieron. La gente sigue volviendo a la web como un ejemplo de metodologías simples de integración. Desafortunadamente, creo que las personas subestiman la cantidad de planificación y previsión que se emplearon para crear la web y simplifican demasiado lo que se debe hacer para permitir el tipo de reutilización fortuita que se produce en la web.
Usted dice que nunca ha visto REST en la práctica, pero que no puede ser cierto si alguna vez utiliza un navegador web. El navegador web es un cliente REST.
- ¿Por qué no hay que hacer una actualización del navegador cuando alguien cambia algo de HTML en un sitio web?
- ¿Por qué puedo agregar un nuevo conjunto completo de páginas a un sitio web y el "cliente" todavía puede acceder a esas páginas nuevas sin una actualización?
- ¿Por qué no tienen que ofrecer un "servicio de descripción de lenguaje" al navegador web para decirle que cuando se va a http://example.org/images/cat que el tipo de retorno será una imagen jpeg y al momento a http://example.org/description/cat el tipo de devolución será text/html?
- ¿Por qué puedo utilizar un navegador web para visitar sitios que no existían cuando se lanzó el explorador ? ¿Cómo puede el cliente conocer estos sitios?
Puede parecer una pregunta tonta, pero si conoce la respuesta, entonces puede comenzar a ver de qué se trata REST. Mire StackOverflow para obtener más beneficios de REST. Cuando estoy buscando una pregunta, puedo marcar esa página o enviar la url a un amigo y él puede ver la misma información. Él no tiene que navegar por el sitio para encontrar esa pregunta.
StackOverflow utiliza una variedad de servicios OpenId para autenticación, gravatar.com para imágenes de avatar, google-analytics y Quantserve para información analítica. Este tipo de integración multi-compañía es el tipo de cosa que el mundo SOAP solo sueña con. Uno de los mejores ejemplos es el hecho de que las bibliotecas de jQuery que se utilizan para controlar la interfaz de usuario de StackOverflow se recuperan de la red de entrega de contenido de Google. El hecho de que SO pueda dirigir al cliente (es decir, su navegador web) para descargar código de un sitio de terceros para mejorar el rendimiento es prueba del bajo acoplamiento entre el cliente web y el servidor.
Estos son ejemplos de una arquitectura REST en funcionamiento.
Ahora algunos sitios web/aplicaciones hacen rompen las reglas de REST y luego el navegador no funciona como se esperaba.
- El infame botón de retroceso problema es causado por el uso del lado del servidor estado de la sesión.
- El equilibrio de carga puede ser un problema cuando tiene estado de sesión del lado del servidor.
- Las aplicaciones flash a menudo evitan que la URL identifique específicamente una representación .
- El otro problema que rompe los navegadores web es una mala conformidad con los estándares de tipo de medios . Oímos todos el momento de cómo IE6 debe ser asesinado. El problema es que los estándares no se siguieron correctamente, o se ignoraron por cualquier motivo.
- El uso de sesiones de inicio de sesión es la fuente de muchos agujeros de seguridad.
REST está por todos lados. Es la parte de la web que lo hace funcionar bien. Si desea construir aplicaciones distribuidas que puedan escalar como la web, sea flexible para cambiar como la web y promueva la reutilización como lo hizo la web, entonces siga las mismas reglas que cuando crearon navegadores web.
¡Muy buena pregunta! : - =) –
bueno, en realidad, servicios web RESTful como parte del curso de servicios web – Roman
No es una tecnología asombrosa, es una tecnología diferente. Si desea que alguien lo convenza es maravilloso y debe usarse siempre, intente con un asesor. – quillbreaker