Ao criar um serviço REST com a restrição HATEOAS , é muito fácil anunciar a existência de recursos por meio de vinculação. Você cria um GET
na raiz do meu site e eu respondo com o documento raiz listando todos os recursos de primeira camada:
{
users: { href: "/users" }
questions { href: "/questions" }
}
Os clientes que entenderem como ler esses href
valores poderão executar GET
solicitações sobre eles e descobrir todos os recursos atuais disponíveis no aplicativo.
Isso funciona bem para cenários de pesquisa básica, mas não indica se um recurso é consultável. Por exemplo, pode ser razoável executar:
GET /users?surname=Smith
Existem formatos que possam expressar essa capacidade de consulta com informações suficientes para que um cliente possa formar uma consulta coerente sem o conhecimento prévio necessário do recurso?
Além disso, existe alguma maneira de expressar que um cliente pode executar um POST
para um determinado local com um local esperado. Por exemplo, pode-se esperar que um cliente execute o seguinte para criar um novo recurso de pergunta:
POST /questions
{
title: "Are there strategies for discovering REST services using HATEOAS?",
body: "When building a REST service with the HATEOAS constraint, it's very..."
}
Ao usar o HTML como o formato para consumo humano, podemos expressar muito disso através do uso de formulários e de instruções por escrito para permitir que um ser humano descubra as operações que tem permissão para executar em um serviço.
Existem formatos capazes de coisas semelhantes para os clientes?