Sto cercando una guida sulle buone pratiche quando si tratta di restituire errori da un'API REST. Sto lavorando a una nuova API in modo da poter prendere qualsiasi direzione in questo momento. Il mio tipo di contenuto è XML al momento, ma ho intenzione di supportare JSON in futuro.
Ora sto aggiungendo alcuni casi di errore, come ad esempio un client tenta di aggiungere una nuova risorsa ma ha superato la sua quota di archiviazione. Sto già gestendo alcuni casi di errore con codici di stato HTTP (401 per l'autenticazione, 403 per l'autorizzazione e 404 per URI di richieste non valide). Ho esaminato i codici di errore HTTP benedetti, ma nessuno dell'intervallo 400-417 sembra corretto segnalare errori specifici dell'applicazione. Quindi all'inizio sono stato tentato di restituire il mio errore dell'applicazione con 200 OK e un payload XML specifico (cioè. Pagaci di più e otterrai lo spazio di cui hai bisogno!) Ma mi sono fermato a pensarci e sembra insaponato (/ scrollata di spalle per l'orrore). Inoltre mi sembra di dividere le risposte agli errori in casi distinti, poiché alcuni sono guidati dal codice di stato http e altri dal contenuto.
Quindi quali sono le raccomandazioni del settore? Buone pratiche (spiegare perché!) E anche, da un client pov, che tipo di gestione degli errori nell'API REST semplifica la vita del codice client?