¿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)