Je recherche des conseils sur les bonnes pratiques en matière de retour d'erreurs à partir d'une API REST. Je travaille sur une nouvelle API afin que je puisse prendre n'importe quelle direction dès maintenant. Mon type de contenu est XML pour le moment, mais je prévois de prendre en charge JSON à l'avenir.
J'ajoute maintenant quelques cas d'erreur, comme par exemple un client tente d'ajouter une nouvelle ressource mais a dépassé son quota de stockage. Je gère déjà certains cas d'erreur avec des codes de statut HTTP (401 pour l'authentification, 403 pour l'autorisation et 404 pour les URI de demande non valides). J'ai regardé les codes d'erreur HTTP bénis, mais aucun de la plage 400-417 ne semble correct de signaler des erreurs spécifiques à l'application. Donc, au début, j'ai été tenté de renvoyer mon erreur d'application avec 200 OK et une charge utile XML spécifique (c'est-à-dire. Payez-nous plus et vous obtiendrez le stockage dont vous avez besoin!) Mais je me suis arrêté pour y penser et cela semble savonneux (/ hausser les épaules avec horreur). De plus, j'ai l'impression de diviser les réponses d'erreur en cas distincts, car certains sont basés sur le code de statut http et d'autres sur le contenu.
Alors, quelles sont les recommandations de l'industrie? Bonnes pratiques (expliquez pourquoi!) Et aussi, à partir d'un point de vue client, quel type de gestion des erreurs dans l'API REST facilite la vie du code client?