In un'API HATEOAS vengono restituiti collegamenti che rappresentano possibili transizioni di stato. Un client conforme dovrebbe semplicemente recuperare e seguire tali collegamenti, ma se un client non conforme sta costruendo URI anziché seguire i collegamenti forniti quale sarebbe il codice di stato / risposta più appropriato da restituire?
- 400 funzionerebbe, insieme ad alcune informazioni nel corpo della risposta - questo è ciò che stiamo facendo attualmente
- 403 Immagino che sarebbe sbagliato, poiché implica che la richiesta non potrebbe mai funzionare - ma potenzialmente il link potrebbe essere disponibile in futuro
- 404 suoni plausibili - in questo momento la risorsa non esiste
Che cosa pensano le persone? So che le richieste condizionali sono in grado di gestire richieste basate su risposte obsolete (come ad esempio 412s), ma questa è una situazione leggermente diversa.
Aggiornamento:
OK, ora vedo che la risposta corretta per questi tipi di operazioni non valide sarebbe un 404. Come su dove la sintassi di una richiesta è corretta, sta andando a una risorsa valida ma in qualche modo sta violando una regola aziendale. Ecco un paio di esempi forzati:
- Diciamo che il cliente può fornire due numeri che devono essere compresi tra il 20% l'uno dell'altro, ma altrimenti potrebbe essere qualsiasi numero.
- Diciamo che il cliente può fornire un numero che passa attraverso alcuni calcoli il cui risultato indica che il numero originale fornito non era corretto.
400 è la risposta corretta per questi?