Quando si crea un servizio REST con il vincolo HATEOAS , è molto facile pubblicizzare l'esistenza delle risorse attraverso il collegamento. Accedete GET
alla radice del mio sito e io rispondo con il documento radice che elenca tutte le risorse di primo livello:
{
users: { href: "/users" }
questions { href: "/questions" }
}
I clienti che comprendono come leggere questi href
valori possono eseguire GET
richieste su tali valori 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, può essere ragionevole eseguire:
GET /users?surname=Smith
Esistono formati in grado di esprimere questa capacità di query con informazioni sufficienti a consentire a un client di formare una query coerente senza la necessaria conoscenza preliminare della risorsa?
Inoltre, esiste un modo per esprimere che un client è autorizzato a eseguire POST
una determinata posizione con una posizione prevista. Ad esempio, ci si potrebbe aspettare che un client esegua quanto segue per creare una nuova risorsa di domanda:
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 si utilizza HTML come formato per il consumo umano, possiamo esprimere molto di ciò attraverso l'uso di moduli e istruzioni scritte per consentire a un essere umano di scoprire le operazioni che gli è consentito eseguire su un servizio.
Esistono formati capaci di cose simili per i clienti?