REST bruger standard-HTTP-methods som de udsagnsord, der handler på resources. Den almindelige mapping til CRUD (Create, Read, Update, Delete) er:
REST bruger standard-HTTP-methods som de udsagnsord, der handler på resources. Den almindelige mapping til CRUD (Create, Read, Update, Delete) er:
| CRUD | Method | Typisk brug |
|---|
| Create | POST | Tilføj en ny resource til en collection |
| Read | GET | Hent en resource eller liste |
| Update (fuld) | PUT | Erstat en resource helt |
| Update (delvis) | PATCH | Ret nogle felter |
| Delete | DELETE | Fjern en resource |
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 sender hele representationen og erstatter den; PATCH /users/42 sender kun de felter, der skal ændres (fx { "email": "[email protected]" }).
Dette er to forskellige egenskaber:
GET, HEAD, OPTIONS er safe.GET, PUT, DELETE, HEAD er idempotente.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)
Interviewere spørger om dette for at se, om du forstår HTTP-semantik godt nok til at bygge pålidelige APIs. Skellet mellem safe/idempotent er ikke akademisk: det styrer direkte, hvad clients, proxyer og CDN'er må gøre. Safe methods kan caches og prefetches frit; idempotente methods kan automatisk prøves igen (retry) efter en netværks-timeout uden risiko for at duplikere side effects — hvilket er grunden til, at en client sikkert kan prøve en PUT eller DELETE igen, men skal være forsigtig med at prøve en POST igen (den kan oprette to ordrer). Den klassiske fejl er at bruge GET til at udløse side effects (fx GET /users/42/delete), hvilket ødelægger caching og lader crawlere ved et uheld mutere data. At vælge den rigtige method — og respektere dens safe- og idempotency-kontrakt — er det, der gør en API forudsigelig og sikker at bygge tooling omkring.
Et bibliotek af IT-interviewspørgsmål med detaljerede svar — fra Junior til Senior.
Donér