Últimamente me he interesado en familiarizarme con REST. Traté de leer la entrada wiki en REST , pero no fue de ayuda. Realmente agradecería que alguien pueda explicar en inglés simple (sin jerga tecnológica innecesaria )
- ¿Qué es REST?
- Qué posición ocupa en el ecosistema de arquitectura web
- Con qué fuerza (o sin apretar) se combina con el protocolo.
- ¿Cuáles son las alternativas a REST y cómo REST se compara con ellas?
Entiendo que puede que no sea posible responder esto en uno o dos párrafos, en ese caso los enlaces relevantes serán muy apreciados.
Respuestas:
Inglés simple:
REpresentacional: la acción de hablar o actuar en nombre de alguien.
Transferencia de estado: estado de transferencia.
Técnico:
RESTO vs JABÓN
fuente
¿Qué es REST?
Transferencia de estado representacional. Describe cómo un sistema puede comunicar el estado con otro. Un ejemplo sería el estado de un producto (su nombre, descripción, etc.) representado como XML, JSON o texto sin formato. La idea generalizada de estado se denomina recurso.
¿Qué posición ocupa en un ecosistema de arquitectura web?
REST se asocia comúnmente con la interfaz de servicios web, ya que HTTP es, con mucho, el protocolo de operador más común. En el modelo de 7 capas, existe en la capa de aplicación . Sin embargo, vea la siguiente sección.
¿Con qué fuerza (o sin apretar) se combina con el protocolo?
REST no es HTTP. Utiliza HTTP porque en su forma más general REST existe para ayudar a una máquina a mapear el concepto de un verbo contra una colección arbitraria de sustantivos. HTTP contiene un conjunto útil de verbos genéricos (GET, PUT, PATCH, etc.) que pueden aplicarse a sustantivos arbitrarios expresados como URI utilizando HTTP, por ejemplo, GET http://example.org/Product(54 ).
¿Cuáles son las alternativas a REST y cómo se compara REST con ellas?
Esto es similar a preguntar "¿Qué tan RESTANTE es mi enfoque?" Use la siguiente lista (resumida del Modelo de madurez de Richardson como lo describe Martin Fowler ):
Nivel 0 - El pantano de POX
Use POST para todo (lecturas, escrituras, eliminaciones). Esto es SOAP, POX, RPI, etc. Simplemente está utilizando HTTP como túnel para su propio protocolo. Se dirige a un único punto final que hace todo en función del contenido del cuerpo de la solicitud.
Nivel 1 - Recursos
Use POST para todo. Apunte a múltiples puntos finales diseñados para brindar información sobre una cosa en particular. Acabas de descubrir recursos.
Nivel 2 - verbos HTTP
Use verbos HTTP contra recursos. Ahora lo estás consiguiendo. POST es crear, PUT es sobrescribir, OPCIONES para las operaciones disponibles, BORRAR para, bueno, eliminar el recurso. Como resultado del uso de estos verbos, los diferentes códigos de estado HTTP comienzan a ser más relevantes (¿ACEPTARON a alguien?).
Nivel 3 - Control de hipermedia ( HATEOAS )
En este punto, da el salto final e introduce hipermedia como mecanismo de control de flujo. Un cliente REST no necesita conocimiento previo sobre cómo interactuar con una aplicación o servidor en particular más allá de una comprensión genérica de hipermedia. Esto se puede comunicar en HTTP a través del campo de encabezado Content-Type. Los formatos de texto incluyen AtomPub y (más conciso) HAL , mientras que HyperAudio funciona bien para transmisiones de audio (consulte SoundCloud et al)
fuente
state transfer
representación. la acción de hablar o actuar en nombre de alguien es una representación de cómo funciona en este contexto?Si bien REST es una abreviatura de Representational State Transfer, puede ser más fácil considerar la idea de realizar varias acciones a través de una interfaz algo intuitiva.
Por ejemplo, una URL como http://www.mysite.com/FindProduct/125/ podría interpretarse como alguien que desea información sobre el producto con una identificación de 125.
Si bien REST generalmente se considera en términos de HTTP, el concepto podría aplicarse a otros protocolos como se señala en la referencia de Wikipedia.
Otros ejemplos de REST que pueden ser útiles:
fuente