REST używa standardowych metod HTTP jako czasowników działających na zasobach. Popularne mapowanie na CRUD (Create, Read, Update, Delete) to:
REST używa standardowych metod HTTP jako czasowników działających na zasobach. Popularne mapowanie na CRUD (Create, Read, Update, Delete) to:
| CRUD | Metoda | Typowe zastosowanie |
|---|
| Create | POST | Dodanie nowego zasobu do kolekcji |
| Read | GET | Pobranie zasobu lub listy |
| Update (pełna) | PUT | Całkowite zastąpienie zasobu |
| Update (częściowa) | PATCH | Zmiana niektórych pól |
| Delete | DELETE | Usunięcie zasobu |
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 wysyła całą reprezentację i ją zastępuje; PATCH /users/42 wysyła tylko pola do zmiany (np. { "email": "[email protected]" }).
To dwie różne właściwości:
GET, HEAD, OPTIONS są safe.GET, PUT, DELETE, HEAD są idempotentne.Method Safe? Idempotent?
GET yes yes
HEAD yes yes
PUT no yes (replacing with the same body twice = same result)
DELETE no yes (deleting twice = still deleted)
PATCH no no* (depends on the patch; not guaranteed)
POST no no (posting twice usually creates two resources)
Rozmówcy pytają o to, by sprawdzić, czy rozumiesz semantykę HTTP na tyle dobrze, by budować niezawodne API. Rozróżnienie safe/idempotent nie jest akademickie: bezpośrednio rządzi tym, co wolno robić klientom, proxy i CDN-om. Metody safe mogą być swobodnie cache'owane i prefetchowane; metody idempotentne mogą być automatycznie ponawiane (retry) po timeoucie sieci bez ryzyka zduplikowania efektów ubocznych — dlatego klient może bezpiecznie ponowić PUT lub DELETE, ale musi uważać przy ponawianiu POST (może utworzyć dwa zamówienia). Klasyczny błąd to używanie GET do wywoływania efektów ubocznych (np. GET /users/42/delete), co psuje cache'owanie i pozwala crawlerom przypadkowo zmieniać dane. Wybór właściwej metody — i respektowanie jej kontraktu bezpieczeństwa i idempotentności — to właśnie to, co czyni API przewidywalnym i bezpiecznym do budowania wokół niego narzędzi.
Biblioteka pytań rekrutacyjnych IT ze szczegółowymi odpowiedziami — od Juniora do Seniora.
Wesprzyj