Estoy buscando orientación sobre buenas prácticas cuando se trata de devolver errores de una API REST. Estoy trabajando en una nueva API para poder tomar cualquier dirección en este momento. Mi tipo de contenido es XML en este momento, pero planeo admitir JSON en el futuro.
Ahora estoy agregando algunos casos de error, como por ejemplo, un cliente intenta agregar un nuevo recurso pero ha excedido su cuota de almacenamiento. Ya estoy manejando ciertos casos de error con códigos de estado HTTP (401 para autenticación, 403 para autorización y 404 para URI de solicitud incorrecta). Revisé los benditos códigos de error HTTP, pero ninguno del rango 400-417 parece correcto para informar errores específicos de la aplicación. Así que al principio tuve la tentación de devolver el error de mi aplicación con 200 OK y una carga útil XML específica (es decir, ¡Páganos más y obtendrá el almacenamiento que necesita!), Pero me detuve a pensarlo y parece estar enjabonado (/ encogerse de hombros con horror). Además, parece que estoy dividiendo las respuestas de error en casos distintos, ya que algunos están controlados por el código de estado http y otros están controlados por el contenido.
Entonces, ¿cuáles son las recomendaciones de la industria? Buenas prácticas (¡explique por qué!) Y también, desde un punto de vista del cliente, ¿qué tipo de manejo de errores en la API REST facilita la vida del código del cliente?