Sobes.tech
Middle+

Explique o princípio do HATEOAS.

sobes.tech IA

Resposta da IA

HATEOAS (Hypermedia como Motor de Estado da Aplicação) é uma restrição da arquitetura REST que estipula que o cliente interage com o serviço REST exclusivamente através de hipermédia fornecido pelo servidor nas respostas.

Em vez de conhecer previamente as URIs de todos os recursos e ações, o cliente recebe essa informação na forma de links e formulários incorporados nas representações dos recursos.

Aspectos-chave:

  • Mensagens auto-descritivas: Cada mensagem enviada ao cliente, além dos dados, contém links para recursos relacionados e ações disponíveis.
  • Não é necessário conhecer as URIs antecipadamente: O cliente segue os hipermédios para navegar na API e executar ações. Ele conhece apenas o ponto de acesso inicial.
  • Melhoria na evolução: O servidor pode alterar as URIs dos recursos sem alterar a lógica do cliente, desde que continue a fornecer os hipermédios relevantes.
  • Redução do acoplamento cliente-servidor: O cliente depende menos da estrutura interna do servidor.

Exemplo de representação de um recurso com HATEOAS:

{
  "orderId": "123",
  "status": "Pending",
  "items": [
    {
      "itemId": "A45",
      "quantity": 2
    }
  ],
  "_links": {
    "self": {
      "href": "/orders/123"
    },
    "cancel": {
      "href": "/orders/123/cancel",
      "method": "POST" // Indica o tipo de ação
    },
    "customer": {
      "href": "/customers/C99"
    }
  }
}

Aqui, _links contém URIs para o próprio recurso, a possibilidade de cancelar o pedido e o cliente relacionado. O cliente, ao receber essa representação, sabe como realizar essas ações sem ter seus URIs "codificados" em seu código.

Embora o HATEOAS seja um princípio fundamental do REST, sua aplicação completa e consistente pode ser difícil na prática.