Détails
Signification du code d'erreur HTTP 400 BAD request ?
Je dispose d'une requête JSON que j'envoie à une URL HTTP.
Doit-elle être traitée comme une requête 400
où le champ requestedResource
existe mais où "Roman"
est une valeur invalide pour ce champ ?
[{requestedResource:"Roman"}]
Doit-on considérer qu'il s'agit du champ " 400 " lorsque le champ " blah " n'existe pas du tout ?
[{blah:"Roman"}]
332
3
Un 400 signifie que la requête était malformée. En d'autres termes, le flux de données envoyé par le client au serveur n'a pas respecté les règles.
Dans le cas d'une API REST avec une charge utile JSON, les 400's sont généralement, et correctement je dirais, utilisés pour indiquer que le JSON n'est pas valide d'une certaine manière selon la spécification API du service.
Dans cette logique, les deux scénarios que vous avez fournis devraient être des 400's.
Imaginez qu'il s'agisse plutôt de XML que de JSON. Dans les deux cas, le XML ne passerait jamais la validation du schéma, soit à cause d'un élément non défini, soit à cause d'une valeur d'élément incorrecte. Ce serait une mauvaise demande. Même chose ici.
De [w3.org][1]
[1] : http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
Pensez aux attentes.
En tant qu'application cliente, vous vous attendez à savoir si quelque chose ne va pas du côté du serveur. Si le serveur doit lancer une erreur lorsque
blah
est manquant ou que la valeur derequestedResource
est incorrecte, alors une erreur 400 serait appropriée.