REST používá standardní HTTP metody jako slovesa, která působí na zdroje. Běžné mapování na CRUD (Create, Read, Update, Delete) je:
REST používá standardní HTTP metody jako slovesa, která působí na zdroje. Běžné mapování na CRUD (Create, Read, Update, Delete) je:
| CRUD | Method | Typické použití |
|---|
| Create | POST | Přidat nový zdroj do kolekce |
| Read | GET | Načíst zdroj nebo seznam |
| Update (úplný) | PUT | Nahradit celý zdroj |
| Update (částečný) | PATCH | Upravit některá pole |
| Delete | DELETE | Odstranit zdroj |
POST /users HTTP/1.1
Content-Type: application/json
{ "name": "Ann", "email": "[email protected]" }
HTTP/1.1 201 Created
Location: /users/42
{ "id": 42, "name": "Ann", "email": "[email protected]" }
PUT /users/42 posílá celou reprezentaci a nahrazuje ji; PATCH /users/42 posílá jen pole, která se mají změnit (např. { "email": "[email protected]" }).
Jsou to dvě různé vlastnosti:
GET, HEAD, OPTIONS jsou safe.GET, PUT, DELETE, HEAD jsou idempotentní.Method Safe? Idempotent?
GET yes yes
HEAD yes yes
PUT no yes (nahrazení stejným tělem dvakrát = stejný výsledek)
DELETE no yes (smazání dvakrát = stále smazáno)
PATCH no no* (závisí na patchi; není zaručeno)
POST no no (dvojí POST obvykle vytvoří dva zdroje)
Tazatelé to pokládají, aby zjistili, zda rozumíte sémantice HTTP dost dobře na to, abyste stavěli spolehlivá API. Rozlišení safe/idempotent není akademické: přímo určuje, co smějí dělat klienti, proxy a CDN. Safe metody lze volně cachovat a prefetchovat; idempotentní metody lze automaticky zopakovat (retry) po síťovém timeoutu bez rizika zdvojení vedlejších efektů — proto klient může bezpečně zopakovat PUT nebo DELETE, ale s opakováním POST musí být opatrný (mohl by vytvořit dvě objednávky). Klasická chyba je používat GET ke spuštění vedlejších efektů (např. GET /users/42/delete), což rozbíjí cachování a nechává crawlery náhodně měnit data. Volba správné metody — a respektování jejího kontraktu o bezpečnosti a idempotenci — je to, co činí API předvídatelným a bezpečným pro stavbu nástrojů kolem něj.
Knihovna IT otázek k pohovoru s podrobnými odpověďmi — od Junior po Senior.
Přispět