O que é HATEOAS?

Postador por : at

Categoria : rest_api


Nesse tópico falarei especificamente sobre HATEOAS, HATEOAS é uma sigla para Hypermedia as the Engine of Application State, isto é uma constante arquitetural de aplicações REST.

Uma API HATEOAS provê informações que permite navegar entre seus componentes de forma dinâmica visto que inclui links junto às respostas.

Na prática a API provê as informações que os consumers ou clients irão precisar para dar os próximos passos. Tenha em mente o exemplo que citei no post Níveis de Maturidade de Richardson falando sobre acesso à Wikipédia.

Imagine uma pesquisa sobre REST que me retorna uma página sobre o tema e destaca os links para informações relacionadas como JSON, XML, etc. Esses links me permitem e o próximo passo.

A mesma ideia se aplica a uma API, imagine que recuperamos as informações de uma pessoa no servidor, junto com os dados a API nos retorna também links que me possibilitam conhecer os próximos recursos, como link para o endpoint de um novo cadastro, link para a atualização desse registro, link para a deleção desse registro etc. Enfim ele me dá o próximo passo, me os links que muito provavelmente eu vou acessar depois de chegar no recurso.

{
    "account": {
        "account_number": 12345,
        "balance": {
            "currency": "usd",
            "value": 100.00
        },
        "links": {
            "deposits": "/accounts/12345/deposits",
            "withdrawals": "/accounts/12345/withdrawals",
            "transfers": "/accounts/12345/transfers",
            "close-requests": "/accounts/12345/close-requests"
        }
    }
}

Essa abordagem facilita bastante a vida dos desenvolvedores e todo o processo de integração.

Eles vão saber exatamente o que a sua API permite executar.

Vou deixar também alguns links para você se aprofundar ainda mais sobre este assunto: