HATEOAS y REST: el paradigma hipermedia

La transferencia de estado representacional, más conocida por REST (siglas del inglés Representational State Transfer), forma parte de los paradigmas de programación más importantes en el desarrollo de aplicaciones. Este principio de arquitectura, presentado en el año 2000 por Roy Fielding en su disertación, tiene como objetivo principal adaptar las aplicaciones web lo mejor posible a los requisitos de la Web moderna y, como recientemente ha ganado en popularidad y relevancia, cada vez son más los webmasters que se esfuerzan en aplicar este concepto. Los resultados de este esfuerzo, sin embargo, no son siempre realmente REST (RESTful), porque a menudo ciertos principios o propiedades como HATEOAS no se implementan correctamente.

 

¿Qué significa HATEOAS?

El término HATEOAS, introducido por Fielding en su definición de REST, es el acrónimo de Hypermedia as the engine of applicacion state (en castellano, hipermedia como el motor del estado de la aplicación) y describe una de las propiedades más significativas de REST: como este enfoque de diseño de aplicaciones ha de ofrecer una interfaz universal, lo que postula HATEOAS es que el cliente pueda moverse por la aplicación web únicamente siguiendo a los identificadores únicos URI en formato hipermedia. Cuando se aplica este principio, el cliente, aparte de una comprensión básica de los hipermedia, no necesita más información para poder interactuar con la aplicación y el servidor.

Estos URI pueden presentarse:

  • En forma de atributos href y src si hacen referencia a documentos HTML o a snippets,
  • Con elementos o atributos JSON o XML que los clientes pueden reconocer de forma automática

La aplicación del principio HATEOAS permite que la interfaz de un servicio REST pueda modificarse siempre que se requiera, lo que constituye una ventaja fundamental de esta arquitectura frente a otras, como las basadas en SOAP (Simple Object Access Protocol).

 

Para la conexión entre el servidor y el cliente Fielding define estas cuatro características:

  • Identificación inequívoca de todos los recursos: todos los recursos han de poder identificarse con un URI (Unique Resource Identifier).
  • Interacción con los recursos por medio de representaciones: si un cliente necesita un recurso, el servidor le envía una representación (p. ej., HTML, JSON o XML) para que el cliente pueda modificar o borrar el recurso original.
  • Mensajes explícitos: cada mensaje intercambiado por el servidor y el cliente ha de contener todos los datos necesarios para entenderse.
  • HATEOAS: este principio también integra una API REST. Esta estructura basada en hipermedia facilita a los clientes el acceso a la aplicación, puesto que de este modo no necesitan saber nada más de la interfaz para poder acceder y navegar por ella.

HATEOAS es, en definitiva, una de las propiedades más elementales de las API REST y como tal, imprescindible en cualquier servicio REST.

 

 

 

Fuente: www.1and1.mx