ventajas tutorial significado services restful meaning español diferencias desventajas cliente architecture rest

architecture - tutorial - restful web services



¿Cuál es la diferencia entre REST y REST? (12)

Servicios basados ​​en REST / Arquitectura Servicios VC RESTFUL / Arquitectura

Para diferenciar o comparar estos 2, debes saber qué es REST .

REST ( RE presentación del Estado 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 uno y solo un protocolo que es HTTP

  • Para realizar operaciones CRUD, debe usar verbos HTTP como obtener, publicar, poner y eliminar

  • Debe devolver el resultado solo en forma de JSON o XML, átomo, OData, etc. (datos ligeros)

REST based services siguen 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 compatibles con todos los conceptos de OOP, ejemplos : C ++, C #

Object oriented languages compatibles con algunas de las características de OOP, ejemplos : JavaScript, VB

Ejemplo :

ASP Dot NET MVC 4 está REST-Based mientras que la API de Microsoft WEB 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 utilizando URI

  • Admite el verbo HTTP para acceder al recurso desde el servidor.

  • Puede devolver los resultados en forma de JSON, XML, que es el 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 se REST-Based mientras que la API WEB es compatible con todos los principios anteriores y es RESTFul .

¿Cuál es la diferencia entre un sistema REST y un sistema que es REST?

De algunas cosas que he read mayoría de los llamados servicios REST son en realidad servicios REST. Entonces, ¿cuál es la diferencia entre los dos.


"REST" es un paradigma arquitectónico. "RESTful" describe el uso de ese paradigma.


Como dijo Jason en los comentarios, RESTful solo se usa como un adjetivo que describe algo que respeta las restricciones de REST.


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 apis (SOAP o RPC entran en esta categoría). Las apis 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 basadas en entidades (en lugar de tener un único punto final como lo haría un sistema 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 los métodos / verbos HTTP estándar y respuestas de códigos de estado múltiples

  • nivel 3: también conocido como nivel 2 más HATEOAS (hipermedia incluida en la respuesta que describe las llamadas adicionales que puede hacer)

Si bien los niveles 1, nivel 2 y nivel 3 pueden considerarse sistemas REST, solo los niveles más estrictos (también conocidos como nivel 2 y nivel 3) se consideran REST.

Así que, esencialmente, todas las apis RESTful son REST apis, pero no todas las apis REST son RESTful

definición del modelo de madurez de Richardson


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 deberían aprovechar al máximo HTTP y otros estándares web, para que los programas obtengan todas las cosas buenas que las personas ya pueden obtener 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 puede ser mejor que Richardson y Ruby''s Restful Web Services .



REST significa transferencia de estado representacional. Eso significa que el estado mismo no se transfiere, sino una mera representación de él. El ejemplo más común es una aplicación basada en un servidor HTML puro (sin javascript). El navegador no sabe nada acerca de 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. Donde un botón normalmente cambiaría una variable de estado (por ejemplo, una página abierta) en una aplicación de Windows normal, en el navegador tiene un enlace que representa tal cambio de estado.

La idea es utilizar hipermedia. Y tal vez 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 de REST pero sé que realmente no estoy implementando todo el concepto de REST. Realmente no decimos SOAPful, ya sea que uses SOAP o no. Creo que la mayoría de las personas no hacen REST de la forma en que fue concebido por su creador Roy Fielding; en realidad implementamos las arquitecturas RESTful o RESTlike. Puede ver su dissertation y encontrará el acrónimo REST pero no la palabra RESTful.


Representational State Transfer (REST) ​​es un estilo de arquitectura de software para sistemas hipermedia distribuidos, como la World Wide Web. El término Representational State Transfer fue introducido y definido en 2000 por Roy Fielding 1 [2] en su tesis 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 denomina "RESTful". 1


Un "servicio REST" y un "servicio RESTful" son lo mismo.

Un sistema RESTful es cualquier sistema que sigue las convenciones REST definidas en dissertation .

Vale la pena señalar que hay diferentes niveles de RESTfulness. En general, REST es un estilo, no un estándar, por lo que hay espacio para la interpretación según las necesidades. un ejemplo son las URL de recursos jerárquicos (por ejemplo, /things/ID/relatedthings ) versus las URL planas (por ejemplo, /things/ID y /relatedthings?thing=ID )


Un servicio basado en REST se denomina "servicio RESTful".

Fuente confío en publicar eso: Dr.Dobbs Archive


gracias por las respuestas Lea http://www.ibm.com/developerworks/webservices/library/ws-restful/ de Alex Rodriguez que sugiere que un servicio web RESTful tiene 4 características básicas que son:

  1. Utilice los métodos HTTP explícitamente.
  2. Se apátrida
  3. Exponer URIs de estructura de directorios.
  4. Transferencia de XML, notación de objetos de JavaScript (JSON), o ambos.

en.wikipedia.org/wiki/Representational_State_Transfer 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 utiliza normalmente para referirse a servicios web que implementan dicha arquitectura.