Neste artigo, você continuará a explorar a API REST e aprenderá sobre o HATEOAS.
Ao visualizar uma página da web, você pode visualizar os dados na página e executar ações com eles.
Que tal uma API REST? Normalmente, quando você solicita um recurso REST, recupera as informações do recurso. Que tal enviar operações que você pode fazer com o recurso na resposta?

Você aprenderá:
- O que é o HATEOAS?
- Por que você precisa usar o HATEOAS?
- Quando usar o HATEOAS?
API REST
Este é o quinto artigo de uma série de artigos sobre a API REST:
O que significa o HATEOAS?
O termo
HATEOAS significa a frase “Hipermídia como o mecanismo de uma aplicação” (Hipermídia como um mecanismo de estado de aplicação). Para entender isso mais profundamente, primeiro precisamos entender o significado da hipermídia. Dê uma olhada na seguinte página da web:

Quando o navegador carrega uma página, você pode ver definitivamente todo o conteúdo que essa página oferece. Mais interessante, a página também permite executar várias ações com esses dados, por exemplo:
- Pressionando os botões (verde “Clone” ou “Download” (Download)
- Clicando em guias (por exemplo, para visualizar "Problemas")
- e mais alguns
Agora vamos ver como nossas APIs REST se comportam:
Se você observar uma solicitação GET típica para um servidor RESTful como este:

A
solicitação GET localhost : 8080 / users recebe um conjunto de dados de três usuários nesse caso. Ao enviar uma solicitação usando
GET localhost : 8080 / users / 1 , você receberá apenas informações sobre o primeiro usuário. Como regra, quando executamos uma solicitação REST, obtemos apenas dados e não ações com eles. É aqui que o HATEOAS preenche a lacuna. Uma solicitação HATEOAS permite não apenas enviar dados, mas também indicar ações relacionadas:

Este exemplo estava no formato JSON. O formato XML para outro exemplo seria algo parecido com isto:

Ao enviar esta solicitação para obter informações da conta, você obtém os dois:
- Número da conta e dados do saldo
- Links que fornecem ações para depositar / retirar / transferir / fechar
Com o HATEOAS, uma solicitação de um recurso REST fornece dados e ações relacionadas a dados.
Por que precisamos do HATEOAS?
O motivo mais importante para o HATEOAS é o acoplamento solto. Se o consumidor de um serviço REST precisar codificar todos os URLs de recursos, isso estará intimamente relacionado à implementação do seu serviço. Em vez disso, se você retornar os URLs que podem ser usados para ações, eles serão fracamente acoplados. Não há uma dependência estrita da estrutura do URI, pois é indicado e usado na resposta. Alguns tópicos importantes relacionados ao HATEOAS:
HAL - Linguagem de Aplicativo de Hipertexto
Ao desenvolver um serviço RESTful, você deve especificar como retornar os dados e links que correspondem à solicitação. O HAL é um formato que fornece uma maneira simples e consistente de fazer o link entre recursos na sua API REST. Aqui está um exemplo:

Com o HAL, você tem várias categorias de visualizações:
- Links : indicados como uma combinação
- Destino - especificado como um URI
- Relação - Nome
- Recursos Incorporados : outros recursos contidos neste recurso REST
- Estado: dados reais do recurso
Se você usar o Spring Framework para desenvolver um serviço REST, o Spring HATEOAS é um bom mecanismo para o seu serviço.
Sobre esta questão, há um
vídeo do autor.
Sumário
Neste artigo, analisamos o que significa HATEOAS.
Com o HATEOAS, as respostas às solicitações REST retornam não apenas dados, mas também ações que podem ser executadas no recurso.
Isso ajuda a tornar os aplicativos fracamente acoplados.
Leitura adicional
REST + MongoDB + HATEOAS?Serviços HATEOAS REST With SpringSpring HATEOAS: APIs hipermídia com Spring (adicionadas pelo tradutor)