HTTP metodai nusako jūsų ketinimą resursui; būsenos kodai yra serverio užkoduotas atsakymas. Metodams svarbios dvi savybės: safe (tik skaitymas, jokių šalutinių poveikių) ir idempotent (kartojimas duoda tą patį rezultatą — svarbu saugiam retry).
HTTP metodai nusako jūsų ketinimą resursui; būsenos kodai yra serverio užkoduotas atsakymas. Metodams svarbios dvi savybės: safe (tik skaitymas, jokių šalutinių poveikių) ir idempotent (kartojimas duoda tą patį rezultatą — svarbu saugiam retry).
| Metodas | Paskirtis | Safe | Idempotent |
|---|
| GET | Skaityti resursą | Yes | Yes |
| POST | Sukurti / paleisti veiksmą | No | No |
| PUT | Pakeisti resursą | No | Yes |
| PATCH | Iš dalies atnaujinti | No | No* |
| DELETE | Pašalinti resursą | No | Yes |
| HEAD | Kaip GET, tik antraštės | Yes | Yes |
Idempotency skirtumas yra praktiškas: kadangi PUT ir DELETE yra idempotent, klientas gali saugiai juos kartoti po timeout; ne-idempotent POST kartojimas rizikuoja sukurti dublikatą (klasikinė dvigubo nuskaitymo klaida).
Būsenos kodai grupuojami pagal pirmą skaitmenį:
1xx Informational request received, continuing (100 Continue, 101 Switching)
2xx Success it worked (200 OK, 201 Created, 204 No Content)
3xx Redirection go elsewhere (301 Moved, 304 Not Modified)
4xx Client error YOUR request is wrong (400, 401, 403, 404, 429)
5xx Server error the SERVER failed (500, 502, 503, 504)
Svarbiausia linija yra 4xx vs. 5xx riba: 4xx reiškia, kad klientas atsiuntė kažką negero (blogas įvedimas, neautentifikuotas, nerasta) — kartojimas be pakeitimų nepadės; 5xx reiškia, kad serveris sugedo — kartojimas (su backoff) gali pavykti. Kasdienius mokėkite atmintinai: 401 (neautentifikuotas) vs. 403 (autentifikuotas, bet neleidžiama), 404 (nerasta), 429 (apribotas dažnis), 500 (bendras serverio nulūžimas), 502/503/504 (bad gateway / neprieinamas / gateway timeout — paprastai upstream ar perkrovos problema).
Šie kodai yra bendra sutartis tarp kiekvieno kliento ir serverio, tad laisvas jų valdymas tikimasi iš kiekvieno, kas kuria ar naudoja API. Apklausėjai zonduoja skirtumus, atskleidžiančius tikrą supratimą: 401 vs. 403, PUT vs. PATCH ir ypač idempotency, kuri tiesiogiai lemia, ar retry saugus — esminis rūpestis paskirstytose sistemose ir mokėjimų srautuose. Teisingo būsenos kodo grąžinimas taip pat daro jūsų API nuspėjamą ir teisingai tvarkomą cache'ų, proxy ir kliento bibliotekų, tad ši žinia formuoja gerą API dizainą, o ne vien smulkmenas.
IT pokalbių klausimų biblioteka su išsamiais atsakymais — nuo Junior iki Senior.
Paaukoti