🔥 Firehook

Blog · api rest

Gestion des erreurs REST : claire, coherente, actionnable

Construire des erreurs API utiles : schema coherent, codes stables, erreurs par champ et messages securises.

Passerelle API avec lueur d'alerte, symbolisant la gestion des erreurs

Les erreurs font partie de l'experience dev

Les erreurs determinent la vitesse de recuperation des integrations. Un message vague ralentit tout le monde.

Une erreur structuree transforme un echec en action claire : corriger un champ, reauthentifier, ou reessayer plus tard.

Un seul schema d'erreur

Choisissez un schema et appliquez-le partout : code stable, message humain, details optionnels.

La coherence facilite les librairies clientes et reduit les cas particuliers.

Codes d'erreurs stables

Les messages changent, les codes doivent rester stables. Ils permettent aux clients d'implementer des comportements.

Des codes courts et documentes suffisent.

Validation par champ

Quand un payload est invalide, renvoyez les erreurs par champ. Cela aide le client a cibler le probleme.

Un format simple est `errors: [{ field: 'email', message: 'invalid' }]`.

Ne pas exposer les details internes

Ne renvoyez jamais de stack trace. Loggez les details cote serveur avec un identifiant de correlation.

Retournez un message securise et utile pour le developpeur.

Echecs partiels explicites

Les batchs peuvent etre partiellement reussis. Retournez un statut clair et des resultats par item.

Cela permet de relancer uniquement les elements en echec.

Documenter le catalogue d'erreurs

Un petit catalogue de codes et de corrections possibles vaut beaucoup. Il reduit le support et clarifie les integrations.

La documentation d'erreur doit etre courte, specifique et stable.

FAQ

Faut-il un format d'erreur standard ?
Oui. Un schema coherent rend les clients plus simples et reduit le temps de debug.
Doit-on exposer les messages internes ?
Non. Utilisez des messages securises et loggez les details cote serveur.
400 ou 422 pour la validation ?
Les deux se voient. Choisissez et appliquez partout.
Comment gerer les echec partiels ?
Retournez un statut clair et un tableau d'erreurs par element.
Un code d'erreur unique est-il necessaire ?
Oui, il permet aux clients de traiter les erreurs de facon programmatique.