Attualmente sto sviluppando un'API Web e ho uno scenario specifico che non riesco a determinare quale codice di stato HTTP sarebbe più appropriato restituire.Impossibile eliminare l'ultimo contatto: quale codice di stato Http?
Lo scenario
Ho una risorsa "cliente" che possiede un insieme di risorse di contatto.
L'invariante è che un client deve sempre avere almeno un contatto. Pertanto, se viene effettuata una richiesta per eliminare un contatto e questo contatto è l'ultimo contatto rimanente per il client specificato, è necessario restituire una risposta HTTP appropriata che indica che la richiesta non può essere soddisfatta mentre "Impossibile eliminare l'ultimo contatto".
La mia sensazione è questo dovrebbe rientrare nella categoria di
Ho considerato i seguenti codici di stato "4xx di errore del client":
400 Richiesta - ho governato questo fuori come è in particolare per quanto riguarda le richieste malformate in cui il server non è in grado di capire.
405 Metodo non consentito - all'inizio sembra adatto, ma penso che 405 indichi che questo metodo non dovrebbe mai essere consentito, tuttavia lo scenario sopra riportato è solo transitorio. Pensieri?
409 Conflitto - Sono stato inclinato verso questo, tuttavia l'esempio comune fornito per questo codice è generalmente un'eccezione di concorrenza/modifica conflitto.
Qualcuno ha una guida su come dovrei rispondere in questo scenario?
'409' è il mio voto in questo caso, in quanto è un conflitto che l'utente può risolvere. Che l'esempio comune sia qualcos'altro non ha importanza per me, esistono altri esempi come questo. '400' ha ragione, ma c'è qualcosa da dire per '405' se usi le richieste' DELETE' ... Se no, 409 dico, ma se lo fai ... Vedo il tuo dilemma. – Wrikken
Sì, sto usando il verbo DELETE qui, ma penso che 405 indichi che il metodo non dovrebbe essere permesso alla risorsa data. –