API REST - ¿Qué es HATEOAS?

En este artículo, continuará explorando la API REST y aprenderá sobre HATEOAS.

Al ver una página web, puede ver los datos en la página y realizar acciones con ellos.

¿Qué tal una API REST? Normalmente, cuando solicita un recurso REST, recupera la información del recurso. ¿Qué tal enviar operaciones que puede hacer con el recurso en la respuesta?



Aprenderás:


  • ¿Qué es HATEOAS?
  • ¿Por qué necesitas usar HATEOAS?
  • ¿Cuándo usar HATEOAS?

API REST


Este es el quinto artículo de una serie de artículos sobre la API REST:


¿Qué significa HATEOAS?


El término HATEOAS significa la frase "Hipermedia A s el motor de un estado de aplicación" (Hypermedia como un motor de estado de aplicación). Para entender esto más profundamente, primero debemos entender el significado de hipermedia. Echa un vistazo a la siguiente página web:



Cuando el navegador carga una página, definitivamente puede ver todo el contenido que esta página tiene para ofrecer. Más interesante aún, la página también le permite realizar muchas acciones con estos datos, por ejemplo:

  • Presionando los botones (verde "Clonar" o "Descargar" (Descargar)
  • Al hacer clic en pestañas (por ejemplo, para ver "Problemas")
  • y algunos mas

Ahora veamos cómo se comportan nuestras API REST:

Si observa una solicitud GET típica a un servidor RESTful como este:



La solicitud GET localhost : 8080 / users recibe un conjunto de datos de tres usuarios en este caso. Al enviar una solicitud utilizando GET localhost : 8080 / users / 1 , solo recibirá información sobre el primer usuario. Como regla general, cuando ejecutamos una solicitud REST, obtenemos solo datos y no acciones con ellos. Aquí es donde HATEOAS llena el vacío. Una solicitud de HATEOAS le permite no solo enviar datos, sino también indicar acciones relacionadas:



Este ejemplo estaba en formato JSON. El formato XML para otro ejemplo se vería así:



Cuando envía esta solicitud para obtener información de la cuenta, obtiene ambos:

  • Número de cuenta y datos de saldo
  • Enlaces que proporcionan acciones para depositar / retirar / transferir / cerrar

Con HATEOAS, una solicitud de un recurso REST me brinda tanto datos como acciones relacionadas.

¿Por qué necesitamos HATEOAS?


La razón más importante para HATEOAS es el acoplamiento flojo. Si el consumidor de un servicio REST necesita codificar todas las URL de recursos, está estrechamente relacionado con la implementación de su servicio. En cambio, si devuelve las URL que puede usar para acciones, se acoplarán libremente. No existe una dependencia estricta de la estructura del URI, como se indica y se usa en la respuesta. Algunos temas importantes relacionados con HATEOAS:

HAL - Lenguaje de aplicación de hipertexto


Al desarrollar un servicio RESTful, debe especificar cómo devolver los datos y los enlaces que coinciden con la solicitud. HAL es un formato que proporciona una forma simple y consistente de hipervínculos entre recursos en su API REST. Aquí hay un ejemplo:



Con HAL, tiene varias categorías de vistas:

  • Enlaces : indicados como una combinación
  • Objetivo : especificado como un URI
  • Relación - Nombre
  • Recursos integrados : otros recursos contenidos en este recurso REST
  • Estado: datos de recursos reales

Si utiliza Spring Framework para desarrollar un servicio REST, Spring HATEOAS es un buen mecanismo para su servicio.

Sobre este tema hay un video del autor.

Resumen


En este artículo, vimos lo que significa HATEOAS.

Con HATEOAS, las respuestas a las solicitudes REST devuelven no solo datos, sino también acciones que se pueden realizar en el recurso.

Esto ayuda a que las aplicaciones se acoplen libremente.

Lectura adicional


REST + MongoDB + HATEOAS?

HATEOAS REST Servicios con Spring

Spring HATEOAS: API de hipermedia con Spring (agregado por el traductor)

Source: https://habr.com/ru/post/483328/


All Articles