Betekenis van HTTP-foutcode 400 BAD request?
Ik heb een JSON verzoek dat ik naar een HTTP URL stuur.
Moet dit worden behandeld als 400
waar requestedResource
veld bestaat maar "Roman"
is een ongeldige waarde voor dit veld?
[{requestedResource:"Roman"}]
Moet dit worden behandeld als 400
waar "blah"
veld helemaal niet bestaat?
[{blah:"Roman"}]
332
3
Een 400 betekent dat het verzoek misvormd was. Met andere woorden, de gegevensstroom die door de client naar de server werd gestuurd, voldeed niet aan de regels.
In het geval van een REST API met een JSON payload, worden 400's typisch, en correct zou ik zeggen, gebruikt om aan te geven dat de JSON op een of andere manier ongeldig is volgens de API-specificatie voor de service.
Volgens die logica zouden beide scenario's die je gaf 400's moeten zijn.
Stel je voor dat het XML was in plaats van JSON. In beide gevallen zou de XML nooit schema-validatie doorstaan - hetzij vanwege een ongedefinieerd element of een onjuiste elementwaarde. Dat zou een slecht verzoek zijn. Hetzelfde geldt hier.
Van w3.org
Denk aan de verwachtingen.
Als client app verwacht je te weten of er iets mis gaat aan de server kant. Als de server een error moet gooien als
blah
ontbreekt of derequestedResource
waarde onjuist is dan zou een 400 error op zijn plaats zijn.