Kas yra „MIME“ tipas, jei „REST“ API grąžina JSON?

Mano REST API grąžina JSON.

Šiuo metu tekstą / paprastą tekstą grąžinu kaip MIME tipą, bet jis jaučiasi juokingas. Ar turėčiau grąžinti application/x-javascript ar kitą tipą?

Antrasis klausimas susijęs su klaidų sąlygų HTTP būsenos kodu. Jei mano REST API grąžina klaidos būseną, grįšiu kaip JSON

 { result: "fail", errorcode: 1024, errormesg: "That sucked. Try again!" } 

Jei HTTP būsenos kodas lieka 200 OK ?

57
01 янв. ashitaka yra nustatytas sausio 01 2009-01-01 06:17 '09, 6:17 AM 2009-01-01 06:17
@ 5 atsakymai

„JSON“ siūlo application/json , kuri yra panaši į „ IETF“ ir „ IANA“ palaikymą.

Antruoju klausimu manau, kad jei pranešimų apdorojimas neveikia, turėtumėte grąžinti struktūrizuotą ir standartinį klaidos atsakymą JSON pranešimo forma; tik tuo atveju, jei dėl bet kokios priežasties nepavyksta perduoti pranešimo „backend“ tvarkytojui, jei manote, kad HTTP klaidos kodas.

Atnaujinimas 2014-06-27 . Dienos, kai klientai (naršyklės) dirbo tik su 200 atsakymu, seniai praėjo, o vyraujantys patarimai RESTful API yra naudoti HTTP atsakymus, tinkamus atsakymui, 2xx sėkmingiems atsakymams (pvz., 201 PUT, 204 be turinio DELETE) 4xx ir 5xx visoms klaidų sąlygoms, įskaitant pačią API.

70
01 янв. Atsakymą pateikė Lawrence Dol 01 Jan. 2009-01-01 06:22 '09 6:22 am 2009-01-01 06:22
17
25 мая '11 в 11:39 2011-05-25 11:39 atsakymas pateikiamas užklausimu gegužės 25 d. 11 val. 11:39 2011-05-25 11:39

Ne, neturėtumėte grąžinti 200 klaidos būsenos.

Pakartokite būsenos kodą arba į atsakymo naudingąją apkrovą įtraukite išsamesnį klaidos kodą.

10
25 мая '11 в 12:25 2011-05-25 12:25 atsakymą pateikė Julian Reschke gegužės 25 d. 11 val. 12:25 2011-05-25 12:25

Norėčiau atsakyti tiek su HTTP klaidos pranešimu, tiek su programos naudingumu.

10
31 мая '09 в 21:13 2009-05-31 21:13 atsakymą davė david , gegužės 31 d., 09:21, 2009-05-31 21:13

Tinkamas grįžtamasis Content-type yra application/json , pagal RFC 4627 , kuris taip pat registruoja IANA MIME tipą (ir jis rodomas IANA puslapyje). Žinoma, jei rašote klientą, norėtumėte būti liberalesni, ką jūs sutinkate, ir taip pat priimti kitus, pvz., text/json ir text/x-json .

Dabar, jei yra klaida, neturėtumėte grąžinti HTTP 200, kuris iš esmės yra ne RESTful. Žinau, kad kartais nėra sutapimo su jūsų klaida, bet pasirinkti artimiausias 4XX klaidas (kliento klaida) arba 5XX klaidas (serverio klaidas) RFC 2616 skyriuose 10.4 10.5 ir tiksliau JSON.

6
01 авг. atsakymą pateikė LukeShu 01 rug . 2011-08-01 22:15 '11 10:15 val. 2011-08-01 22:15

Kiti klausimai apie „ arba Užduoti klausimą