Kokius REST PUT / POST / DELETE skambučius reikia grąžinti pagal sutartį?

  • Pagal „REST“ idėją, kas turėtų būti atsakymo įstaigoje dėl PUT / POST / DELETE užklausų?

  • Ką apie grąžinimo kodus? Ar HTTP_OK ?

  • Kokios yra tokių susitarimų priežastys, jei tokių yra?

Radau gerą straipsnį, apibūdinantį skirtumus POST / PUT: POST vs PUT. Tačiau jis vis dar neatsako į mano klausimą.

125
24 нояб. tuxSlayer set 24 nov. 2010-11-24 18:52 '10, 18:52, 2010-11-24 18:52
@ 3 atsakymai

Atleiskite lengvumą, bet jei atliksite REST per HTTP, RFC7231 aprašo, kokio elgesio tikimasi iš GET, PUT, POST ir DELETE.

111
24 нояб. atsakymą pateikė Darrel Miller , lapkričio 24 d. 2010-11-24 19:18 '10, 19:18, 2010-11-24 19:18

Apskritai, susitarimai „mano, kad jūs tik pristatote tinklalapius“.

PUT, norėčiau grąžinti tą patį požiūrį, kurį gausite, jei atlikote GET iškart po to; tai sukels 200 (gerai, jei, žinoma, perdavimas bus sėkmingas). POST atveju nukreipsiu į sukurtą šaltinį (jei darote kūrimo operaciją, o jei ne, tiesiog grąžinkite rezultatus); sėkmingo kūrimo kodas yra 201, kuris iš tikrųjų yra tik HTTP peradresavimo kodas, kuris nėra 300 diapazone.

Aš niekada nesu patenkintas tuo, kad turėjau grįžti DELETE (šiuo metu mano kodas sukuria HTTP 204 ir tuščius korpusus).

22
24 нояб. atsakymas pateikiamas Donal Fellows 24 lapkričio. 2010-11-24 19:01 '10, 19:01, 2010-11-24 19:01

Ištekliaus kūrimas paprastai susietas su POST, ir tai turėtų grąžinti naujo šaltinio vietą; pvz., bėgių pastoliuose CREATE bus nukreiptas į SHOW naujai sukurtam ištekliui. Toks pat požiūris gali būti naudingas atnaujinant (PUT), tačiau tai yra mažiau nei konvencija; atnaujinimas turėtų rodyti tik sėkmę. Persikėlimas tikriausiai turėtų rodyti tik sėkmę; jei norite peradresuoti, greičiausiai greičiausiai grąžins išteklių sąrašą.

Sėkmė gali būti nurodyta HTTP_OK, taip.

Vienintelė sunki ir greita taisyklė, kurią minėjau anksčiau, yra tai, kad CREATE turėtų grąžinti naujo šaltinio vietą. Man tai tiesiog atrodo nenaudinga; prasminga, kad klientas turės prieigą prie naujo elemento.

3
24 нояб. Jacobo Mattisono lapkričio 24 d. Atsakymas 2010-11-24 19:02 '10, 19:02, 2010-11-24 19:02

Kiti klausimai apie žymes arba Užduoti klausimą