¿Cuál es la diferencia entre REST y RESTful?
¿Cuál es la diferencia entre un sistema REST y un sistema RESTful?
Según 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?
La transferencia de estado representacional (REST) es un estilo de arquitectura de software. Como lo describe Roy Fielding en una disertación, REST es un "estilo arquitectónico" que básicamente explota la tecnología y los protocolos existentes de la Web.
RESTful se utiliza normalmente para referirse a servicios web que implementan dicha arquitectura.
Servicios/Arquitectura basados en REST versus Servicios/Arquitectura RESTFUL
Para diferenciar o comparar estos 2, debes saber qué es REST .
REST ( RE Presentational S tate T ransfer) es básicamente un estilo arquitectónico de desarrollo que tiene algunos principios:
debería ser apátrida
Debería acceder a todos los recursos del servidor usando solo URI.
No tiene cifrado incorporado.
no tiene sesion
Utiliza un único protocolo: HTTP.
Para realizar operaciones CRUD, debe utilizar verbos HTTP como
get
,post
yput
delete
Debería devolver el resultado sólo en forma de JSON o XML, átomo, OData, etc. (datos ligeros)
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 oriented languages
admite todos los conceptos de programación orientada a objetos, ejemplos : C++, C#
Object-based languages
admite algunas de las funciones de programación orientada a objetos, ejemplos : JavaScript, VB
Ejemplo :
ASP Dot NET MVC 4 es REST-Based
mientras que Microsoft WEB API es RESTFul
.
MVC admite solo algunos de los principios REST anteriores, mientras que WEB API admite todos los principios REST anteriores.
MVC solo admite lo siguiente desde 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, es decir, 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.