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"}]

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.

Commentaires (6)

De [w3.org][1]

10.4.1 400 Mauvaise requête

La demande n'a pas pu être comprise par le serveur en raison d'une syntaxe malformée. syntaxe malformée. Le client NE DEVRAIT PAS répéter la demande sans modifications. modifications.

[1] : http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1

Commentaires (5)

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 de requestedResource est incorrecte, alors une erreur 400 serait appropriée.

Commentaires (0)