Quando costruisci un servizio REST con il vincolo HATEOAS , è molto facile pubblicizzare l'esistenza di risorse tramite il collegamento. Fai un GET
alla radice del mio sito e rispondo con il documento di root che elenca tutte le risorse di primo livello:
{
users: { href: "/users" }
questions { href: "/questions" }
}
I client che comprendono come leggere questi valori di href
potrebbero eseguire GET
richieste su questi e scoprire tutte le risorse correnti disponibili nell'applicazione.
Funziona bene per gli scenari di ricerca di base, ma non indica se una risorsa è interrogabile. Ad esempio, potrebbe essere ragionevole eseguire:
GET /users?surname=Smith
Esistono formati in grado di esprimere questa capacità di query con informazioni sufficienti che un client potrebbe formulare una query coerente senza una conoscenza preliminare necessaria della risorsa?
Inoltre, c'è un modo per esprimere che un client è autorizzato a eseguire un POST
in una data posizione con una posizione prevista. Ad esempio, è possibile che un client esegua quanto segue per creare una nuova risorsa di domande:
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..."
}
Quando utilizzi l'HTML come formato per il consumo umano, possiamo esprimere molto di ciò attraverso l'uso di moduli e prompt scritti per consentire a un essere umano di scoprire le operazioni che è consentito eseguire su un servizio.
Esistono formati che sono capaci di cose simili per i clienti?