400 BAD zahteva Koda napake HTTP pomeni?

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.

Komentarji (6)

Iz w3.org

10.4.1 400 Slaba zahteva

Strežnik zahteve ni mogel razumeti zaradi napačno oblikovanega sintakse. Odjemalec NE MORA ponoviti zahteve brez spremembami.

Komentarji (5)

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.

Komentarji (0)