Lors de la création d'un service REST avec la contrainte HATEOAS , il est très facile d'annoncer l'existence de ressources via la liaison. Vous faites un GET
à la racine de mon site et je réponds avec le document racine listant toutes les ressources de premier niveau:
{
users: { href: "/users" }
questions { href: "/questions" }
}
Les clients qui comprennent comment lire ces href
valeurs pourraient effectuer des GET
requêtes sur celles-ci et découvrir toutes les ressources actuelles disponibles dans l'application.
Cela fonctionne bien pour les scénarios de recherche de base, mais n'indique pas si une ressource peut être interrogée. Par exemple, il peut être raisonnable d'effectuer:
GET /users?surname=Smith
Existe-t-il des formats qui pourraient exprimer cette capacité de requête avec suffisamment d'informations pour qu'un client puisse former une requête cohérente sans connaissance préalable de la ressource?
De plus, existe-t-il un moyen d'exprimer qu'un client est autorisé à effectuer un POST
à un emplacement donné avec un emplacement attendu. Par exemple, on peut s'attendre à ce qu'un client effectue les opérations suivantes pour créer une nouvelle ressource de questions:
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..."
}
Lorsque vous utilisez HTML comme format pour la consommation humaine, nous pouvons exprimer beaucoup de cela en utilisant des formulaires et des invites écrites pour permettre à un humain de découvrir les opérations qu'il est autorisé à effectuer sur un service.
Existe-t-il des formats capables de faire des choses similaires pour les clients?