REST koristi standardne HTTP metode kao glagole koji djeluju na resurse. Uobičajeno mapiranje na CRUD (Create, Read, Update, Delete):
REST koristi standardne HTTP metode kao glagole koji djeluju na resurse. Uobičajeno mapiranje na CRUD (Create, Read, Update, Delete):
| CRUD | Metoda | Tipična upotreba |
|---|
| Create | POST | Dodavanje novog resursa u kolekciju |
| Read | GET | Dohvat resursa ili liste |
| Update (potpuni) | PUT | Potpuna zamjena resursa |
| Update (djelomični) | PATCH | Izmjena nekih polja |
| Delete | DELETE | Uklanjanje resursa |
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 šalje cijelu reprezentaciju i zamjenjuje je; PATCH /users/42 šalje samo polja koja treba promijeniti (npr. { "email": "[email protected]" }).
Ovo su dva različita svojstva:
GET, HEAD, OPTIONS su safe.GET, PUT, DELETE, HEAD su idempotentni.Metoda Safe? Idempotent?
GET da da
HEAD da da
PUT ne da (zamjena istim tijelom dvaput = isti rezultat)
DELETE ne da (brisanje dvaput = i dalje obrisano)
PATCH ne ne* (ovisi o patchu; nije zajamčeno)
POST ne ne (POST dvaput obično stvara dva resursa)
Ispitivači ovo pitaju kako bi vidjeli razumijete li HTTP semantiku dovoljno dobro za izgradnju pouzdanih API-ja. Razlika safe/idempotent nije akademska: izravno upravlja time što klijenti, proxyji i CDN-ovi smiju raditi. Safe metode mogu se slobodno cachirati i prefetchati; idempotentne metode mogu se automatski ponoviti (retry) nakon mrežnog timeouta bez rizika dupliciranja nuspojava — zbog čega klijent može sigurno ponoviti PUT ili DELETE, ali mora biti oprezan pri ponavljanju POST (mogao bi stvoriti dvije narudžbe). Klasična greška je korištenje GET-a za pokretanje nuspojava (npr. GET /users/42/delete), što lomi cachiranje i dopušta crawlerima da slučajno promijene podatke. Odabir prave metode — i poštivanje njezina ugovora o sigurnosti i idempotentnosti — čini API predvidljivim i sigurnim za izgradnju alata oko njega.
Knjižnica IT pitanja za razgovore za posao s detaljnim odgovorima — od Juniora do Seniora.
Doniraj