¿Qué es REST?
Transferencia de estado representativa. 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.
¿Qué tan ajustado (o sin apretar) está acoplado con el protocolo?
REST no es HTTP. Utiliza HTTP porque en su forma más general existe REST para ayudar a una máquina a mapear el concepto de un verbo contra una colección arbitraria de nombres. HTTP contiene un conjunto útil de verbos genéricos (GET, PUT, PATCH, etc.) que se pueden aplicar a nombres arbitrarios expresados como URI mediante HTTP, por ejemplo. OBTENGA enlace ).
¿Cuáles son las alternativas a REST y cómo REST se compara con ellos?
Esto es similar a preguntar "¿Qué tan RESTful es mi enfoque?" Utilice la siguiente lista (que se resume en el modelo de madurez de Richardson como lo describe Martin Fowler ):
Nivel 0 - El pantano de POX
Use POST para todo (lee, escribe, elimina). Esto es SOAP, POX, RPI, etc. Solo está utilizando HTTP como un 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
Usa POST para todo. Dirigirse a múltiples puntos finales diseñados para proporcionar información sobre una cosa en particular. Acabas de descubrir recursos.
Nivel 2 - Verbos HTTP
Usa 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, diferentes códigos de estado HTTP comienzan a ser más relevantes (202 ACEPTADO cualquier persona ?).
Nivel 3: control de hipermedia ( HATEOAS )
En este punto, da el salto final e introduce el hipermedia como un mecanismo de control de flujo. Un cliente REST no necesita conocimientos previos 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 las transmisiones de audio (vea SoundCloud et al)