400 BAD request HTTP-feilkode Betydning?

Jeg har en JSON-forespørsel som jeg sender til en HTTP-URL.

Skal dette behandles som 400 der requestedResource-feltet finnes, men "Roman" er en ugyldig verdi for dette feltet?

[{requestedResource:"Roman"}] 

Skal dette behandles som 400 der feltet "blah" ikke finnes i det hele tatt?

[{blah:"Roman"}]

En 400 betyr at forespørselen var feilformet. Datastrømmen som klienten sendte til serveren, fulgte med andre ord ikke reglene.

Når det gjelder et REST-API med en JSON-nyttelast, brukes 400 vanligvis, og med rette vil jeg si, for å indikere at JSON er ugyldig på en eller annen måte i henhold til API-spesifikasjonen for tjenesten.

Med den logikken bør begge scenariene du oppga være 400' er.

Tenk deg i stedet at dette var XML i stedet for JSON. I begge tilfeller ville XML aldri passere skjemavalidering - enten på grunn av et udefinert element eller en feil elementverdi. Det ville være en dårlig forespørsel. Samme sak her.

Kommentarer (6)

Fra w3.org.

10.4.1 400 Dårlig forespørsel

Forespørselen kunne ikke forstås av serveren på grunn av feilaktig syntaks. Klienten BØR IKKE gjenta forespørselen uten å gjøre endringer.

Kommentarer (5)

Tenk på forventningene.

Som klientapp forventer du å vite om noe går galt på serversiden. Hvis serveren må kaste en feil når blah mangler eller requestedResource-verdien er feil, vil en 400-feil være passende.

Kommentarer (0)