API REST - O que é o HATEOAS?

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 Spring

Spring HATEOAS: APIs hipermídia com Spring (adicionadas pelo tradutor)

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


All Articles