200,300, 400, 500 sont tous très générique. Si vous voulez générique, 400 est OK.
422 est utilisée par un nombre croissant d'Api, et est encore utilisé par les Rails de la boîte.
Peu importe le code de statut que vous choisissez pour votre API, quelqu'un qui ne seront pas d'accord. Mais je préfère 422 parce que je pense à '400 + état du texte" comme trop générique. Aussi, vous n'êtes pas de prendre avantage d'un JSON-prêt analyseur; en revanche, 422 avec une réponse JSON est très explicite, et un grand nombre d'informations sur les erreurs peuvent être transmis.
Parlant de la réponse JSON, j'ai tendance à standardiser sur les Rails d'erreur de réponse pour ce cas, qui est:
{
"errors" :
{
"arg1" : ["error msg 1", "error msg 2", ...]
"arg2" : ["error msg 1", "error msg 2", ...]
}
}
Ce format est parfait pour la validation d'un formulaire, que je considère le cas le plus complexe à l'appui en termes de rapport d'erreurs richesse. Si votre structure d'erreur est présent, il sera susceptible de répondre à tous vos rapports d'erreur besoins.