Provo a gestire il maggior numero possibile di errori dall'API . In ambienti con più client questo aiuta a mantenere le cose coerenti e più facili da mantenere.
Quando si esegue la gestione degli errori tramite l'API, il semplice codice di stato non è sufficiente. L'approccio che prendo qui, è quello di fornire un ulteriore corpo di risposta all'errore che fornisca anche un messaggio leggibile dall'uomo oltre a un messaggio più dettagliato per lo sviluppatore e un link a ulteriori risorse che forniscano alcune spiegazioni aggiuntive. In JSON questo potrebbe apparire in questo modo:
{
"status": 404,
"code": 404-07,
"message": "Ooops! Seems like the file does not exist.",
"developerMessage": "File resource for path /uploads/foobar.txt does not exist.",
"moreInfo": "http://www.mycompany.com/errors/404-07"
}
Esempio tratto da stormpath .
I client utilizzano quindi message
leggibile dall'uomo e li presentano direttamente all'utente finale.
Per gestire i18n utilizziamo le intestazioni Accept-Language
e Content-Language
HTTP. I messaggi di errore vengono quindi recapitati nella lingua desiderata.