Aplicaciones impulsadas por Hypermedia

Las aplicaciones impulsadas por hipermedios, también conocidas como Hipermedios como el Motor del Estado de Aplicación (HATEOAS, por sus siglas en inglés), son un paradigma de diseño para la construcción de sistemas distribuidos, especialmente aplicaciones web y APIs. La idea es utilizar hipermedios (hipertexto y tipos de medios) como el principal medio para navegar e interactuar con la aplicación o API.
En una arquitectura impulsada por hipermedios, el servidor incluye en las respuestas que envía a los clientes enlaces y controles de hipermedios. Estos enlaces proporcionan información sobre las acciones disponibles o las transiciones de estado que el cliente puede realizar. A su vez, el cliente navega por la aplicación o API siguiendo estos enlaces de hipermedios e interactuando con los controles proporcionados.
Las características clave de las aplicaciones impulsadas por hipermedios incluyen:
-
Estado sin Sesión: El cliente no necesita mantener el estado de la aplicación; en cambio, se basa en los enlaces de hipermedios proporcionados por el servidor para navegar por los recursos disponibles.
-
Navegación Dinámica: El servidor informa al cliente sobre las acciones y transiciones disponibles al incluir enlaces y controles de hipermedios en la respuesta. Esto hace que la aplicación sea dinámica y flexible.
-
Descubrimiento: Los clientes pueden descubrir la funcionalidad de la aplicación siguiendo enlaces en lugar de depender de información externa o documentación.
-
Desacoplamiento Ligero: Las aplicaciones impulsadas por hipermedios promueven el desacoplamiento ligero entre el cliente y el servidor. Los clientes no están fuertemente vinculados a URL específicas o estructuras de API; navegan según los enlaces proporcionados por el servidor.
-
Evolucionabilidad: El servidor puede evolucionar su API introduciendo nuevos tipos de hipermedios o cambiando la estructura de los enlaces de hipermedios sin romper los clientes existentes.
El objetivo del diseño impulsado por hipermedios es crear sistemas más adaptables y escalables al reducir la dependencia de los clientes de los detalles de implementación internos del servidor. Se alinea con los principios de REST (Transferencia de Estado Representacional) y se asocia a menudo con servicios web RESTful. Formatos de hipermedios como HAL (Lenguaje de Aplicación Hipermedial) y JSON API se utilizan comúnmente en aplicaciones impulsadas por hipermedios.
Al aprovechar los hipermedios, los desarrolladores buscan crear APIs y aplicaciones que sean más fáciles de entender, mantener y evolucionar con el tiempo.