Imam zahtevo JSON, ki jo objavljam v naslovu URL HTTP.
Ali je treba to zahtevo obravnavati kot 400
, če polje requestedResource
obstaja, vendar je "Roman"
neveljavna vrednost za to polje?
[{requestedResource:"Roman"}]
Ali naj se to obravnava kot 400
, če polje "blah"
sploh ne obstaja?
[{blah:"Roman"}]
400 pomeni, da je bila zahteva napačno oblikovana. Z drugimi besedami, tok podatkov, ki ga je odjemalec poslal strežniku, ni bil v skladu s pravili.
V primeru API REST z uporabniškim bremenom JSON se 400 običajno in pravilno uporablja za označevanje, da je JSON na nek način neveljaven v skladu s specifikacijo API za storitev.
Po tej logiki bi morala biti oba scenarija, ki ste ju navedli, 400's.
Predstavljajte si, da bi bil to XML in ne JSON. V obeh primerih XML ne bi nikoli uspešno opravil preverjanja sheme - bodisi zaradi nedefiniranega elementa bodisi zaradi neustrezne vrednosti elementa. To bi bila slaba zahteva. Enako velja tudi za to zahtevo.
Razmislite o pričakovanjih.
Kot odjemalska aplikacija pričakujete, da boste vedeli, če gre na strani strežnika kaj narobe. Če mora strežnik vrglo napako, ko manjka blah
ali je vrednost zahtevane vire
napačna, bi bila primerna napaka 400.