HTTP 422 Contenu non traitable
422 Unprocessable Content signifie que la requête est correctement structurée, mais que son contenu ne peut pas être traité.
Signification
Le serveur comprend le format, par exemple un JSON valide, mais les données enfreignent des règles : champ obligatoire absent, adresse e-mail incorrecte ou date non autorisée. Le code 422 est courant dans les API REST et des frameworks comme Rails, Laravel et FastAPI pour la validation.
Causes fréquentes
- Un champ obligatoire est absent ou vide.
- Une valeur possède un format incorrect, comme une adresse e-mail, un numéro ou une date.
- Une donnée se trouve en dehors de la plage autorisée.
- Une règle métier de l'application interdit l'opération demandée.
Que peut faire un visiteur ?
- Vérifiez les valeurs saisies dans le formulaire, en particulier les champs signalés, puis corrigez-les.
Que peut faire le responsable ?
- Renvoyez dans la réponse API la liste des champs concernés et des messages d'erreur compréhensibles.
- Utilisez 400 pour une requête mal formée et 422 pour des données invalides dans une requête correctement structurée.
- Validez également les données côté navigateur pour faciliter l'usage, tout en conservant la validation serveur.
Impact sur le référencement
Les réponses 422 concernent principalement les formulaires et API et n'affectent normalement pas l'indexation des pages publiques.
Questions fréquentes
Quelle différence entre HTTP 400 et 422 ?
400 signale une requête mal formée, tandis que 422 indique une structure correcte avec un contenu invalide.
Pourquoi FastAPI renvoie-t-il le code 422 ?
Parce que les données ne correspondent pas au modèle attendu, par exemple des types incorrects ou un champ obligatoire absent.