Al crear un servicio REST con la restricción HATEOAS , es muy fácil anunciar la existencia de recursos a través de enlaces. Llegas GET
a la raíz de mi sitio y yo respondo con el documento raíz que enumera todos los recursos de primer nivel:
{
users: { href: "/users" }
questions { href: "/questions" }
}
Los clientes que entienden cómo leer estos href
valores podrían realizar GET
solicitudes sobre ellos y descubrir todos los recursos actuales disponibles en la aplicación.
Esto funciona bien para escenarios de búsqueda básicos, pero no indica si un recurso es consultable. Por ejemplo, puede ser razonable realizar:
GET /users?surname=Smith
¿Hay algún formato que pueda expresar esta capacidad de consulta con suficiente información para que un cliente pueda formar una consulta coherente sin el conocimiento previo necesario del recurso?
Además, ¿hay alguna forma de expresar que un cliente puede realizar una POST
ubicación determinada con una ubicación esperada? Por ejemplo, se podría esperar que un cliente realice lo siguiente para crear un nuevo recurso de preguntas:
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..."
}
Cuando usamos HTML como formato para el consumo humano, podemos expresar mucho de esto mediante el uso de formularios y mensajes escritos para permitir que un humano descubra las operaciones que puede realizar en un servicio.
¿Hay formatos que sean capaces de cosas similares para los clientes?