¿Cuál es la diferencia entre un sistema REST y un sistema que es RESTful?
De algunas cosas que he leído, la mayoría de los llamados servicios REST son en realidad servicios RESTful. Entonces, ¿cuál es la diferencia entre los dos?
¿Cuál es la diferencia entre un sistema REST y un sistema que es RESTful?
De algunas cosas que he leído, la mayoría de los llamados servicios REST son en realidad servicios RESTful. Entonces, ¿cuál es la diferencia entre los dos?
Respuestas:
La transferencia de estado representativo (REST) es un estilo de arquitectura de software. Como se describe en una disertación de Roy Fielding, REST es un "estilo arquitectónico" que básicamente explota la tecnología y los protocolos existentes de la Web.
RESTful se usa generalmente para referirse a los servicios web que implementan dicha arquitectura.
architect
¿de que? de urls? como https://translation.googleapis.com/language/translate/v2
este es el estilo REST?
Para diferenciar o comparar estos 2, debe saber qué es REST .
REST ( RE presentational S tate T ransfer) es básicamente un estilo arquitectónico de desarrollo que tiene algunos principios:
Debe ser apátrida
Debe acceder a todos los recursos del servidor utilizando solo URI
No tiene cifrado incorporado
No tiene sesión
Utiliza uno y solo un protocolo: HTTP
Para realizar un mantenimiento, se debe utilizar HTTP verbos tales como get
, post
, put
ydelete
Debería devolver el resultado solo en forma de JSON o XML, átomo, OData, etc. (datos livianos)
REST based services
seguir algunos de los principios anteriores y no todos
RESTFUL services
significa que sigue todos los principios anteriores.
Es similar al concepto de:
Object-based languages
admite todos los conceptos de OOP, ejemplos : C ++, C #
Object oriented languages
admite algunas de las características de OOP, ejemplos : JavaScript, VB
Ejemplo :
ASP Dot NET MVC 4 es REST-Based
mientras que Microsoft WEB API es RESTFul
.
MVC solo admite algunos de los principios REST anteriores, mientras que WEB API admite todos los Principios REST anteriores.
MVC solo admite lo siguiente de la API REST
Podemos acceder al recurso usando URI
Admite el verbo HTTP para acceder al recurso desde el servidor
Puede devolver los resultados en forma de JSON, XML, que es HTTPResponse.
Sin embargo, al mismo tiempo en MVC
Podemos usar la sesión
Podemos hacerlo con estado
Podemos devolver video o imagen desde el método de acción del controlador que básicamente viola los principios REST
Es por eso que MVC es REST-Based
mientras que WEB API admite todos los principios anteriores y es RESTFul
.
"REST" es un paradigma arquitectónico. "RESTful" describe el uso de ese paradigma.
architect
¿de que? de urls? como https://translation.googleapis.com/language/translate/v2
este es el estilo REST?
Como Jason dijo en los comentarios, RESTful solo se usa como un adjetivo que describe algo que respeta las restricciones REST.
REST significa transferencia de estado representacional. Eso significa que el estado en sí no se transfiere, sino una mera representación del mismo. El ejemplo más común es una aplicación basada en un servidor HTML puro (sin javascript). El navegador no sabe nada sobre la aplicación en sí, pero a través de enlaces y recursos, el servidor puede transferir el estado de la aplicación al navegador. Cuando un botón normalmente cambiaría una variable de estado (por ejemplo, página abierta) en una aplicación de Windows normal, en el navegador tiene un enlace que representa dicho cambio de estado.
La idea es usar hipermedia. Y quizás para crear nuevos tipos de hipermedia. Potencialmente podemos expandir el navegador con javascript / AJAX y crear nuevos tipos de hipermedia personalizados. Y tendríamos una verdadera aplicación REST.
Esta es mi versión corta de lo que significa REST, el problema es que es difícil de implementar. Personalmente digo RESTful, cuando quiero hacer referencia a los principios REST pero sé que realmente no estoy implementando todo el concepto de REST. Realmente no decimos SOAPful porque usas SOAP o no. Creo que la mayoría de la gente no hace REST de la forma en que fue concebido por su creador Roy Fielding, en realidad implementamos arquitecturas RESTful o RESTlike. Puede ver su disertación , y encontrará el acrónimo REST pero no la palabra RESTful.
REST es un estilo de arquitectura de software para software distribuido
El cumplimiento de las restricciones REST se conoce como 'RESTful'.
Muy utilizado hoy para construir servicios web como una alternativa a SOAP.
Aquí tienes algunos enlaces para revisar
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/
Gracias por las respuestas. Lea este artículo de Alex Rodríguez que sugiere que un servicio web RESTful tiene 4 características básicas que son:
Representational State Transfer (REST) es un estilo de arquitectura de software para sistemas hipermedia distribuidos como la World Wide Web. El término Transferencia de Estado Representacional fue introducido y definido en 2000 por Roy Fielding 1 [2] en su disertación doctoral. Fielding es uno de los autores principales de las versiones 1.0 y 1.1 de la especificación del Protocolo de transferencia de hipertexto (HTTP). El cumplimiento de las restricciones REST se conoce como 'RESTful'. Fuente: Wikipedia
Los servicios web son esencialmente sitios web cuyo contenido es consumido por programas informáticos, no por personas. REST es un conjunto de principios arquitectónicos que estipulan que los servicios web deben aprovechar al máximo HTTP y otros estándares web, para que los programas obtengan todo lo bueno que las personas ya pueden sacar de la web. REST a menudo se contrasta con los servicios web SOAP y otros servicios web orientados a "llamada a procedimiento remoto".
Las presentaciones de Stefan Tilkov sobre REST en Parleys.com son bastante buenas, especialmente esta .
Para un libro, no hay nada mejor que Richardson y Ruby's Restful Web Services .
Un servicio basado en REST se denomina "servicio RESTful".
Fuente Confío en publicar eso: Dr.Dobbs Archive
Hay 4 niveles de API definidos en el modelo de madurez de Richardson. Estos se definen como:
Nivel 0: cualquier sistema que tenga un único punto final para todas sus API (SOAP o RPC entran en esta categoría). Las API de nivel 0 también pueden parecerse a "comandos".
nivel 1: un sistema descrito por ResourceUri. Este es un sistema que define múltiples URI basados en entidades (en lugar de tener un único punto final como lo harían los sistemas de nivel 0). Estos URI pueden usar diferentes acciones http (POST, GET, PUT, etc.) para implementar diferentes acciones contra ese recurso.
nivel 2: también conocido como nivel 1 con un uso compatible de métodos / verbos HTTP estándar y respuestas de código de estado múltiple
nivel 3: también conocido como nivel 2 más HATEOAS (hipermedia incluido en la respuesta que describe las llamadas adicionales que puede hacer)
Si bien los niveles 1, nivel 2 y nivel 3 pueden considerarse como sistemas REST, solo los niveles más estrictos (también conocidos como nivel 2 y nivel 3) se consideran RESTful.
Entonces, esencialmente todas las API RESTful son REST, pero no todas las API REST son RESTful
Un "servicio REST" y un "servicio RESTful" son lo mismo.
Un sistema RESTful es cualquier sistema que sigue las convenciones REST definidas en el documento original que creó la idea de las aplicaciones RESTful en red .
Vale la pena señalar que hay varios niveles de RESTfulness. En general, REST es un estilo, no un estándar, por lo que hay espacio para la interpretación basada en las necesidades. un ejemplo son las URL de recursos jerárquicos (p /things/ID/relatedthings
. ej. ) frente a las URL planas (p. ej. /things/ID
y /relatedthings?thing=ID
)
REST (REpresentation State Transfer) es una arquitectura que utiliza los servicios web que se crean.
y
RESTful es una forma de escribir servicios utilizando las arquitecturas REST. Los servicios RESTful exponen los recursos para identificar los objetivos para interactuar con los clientes.