REST usa i metodi HTTP standard come i verbi che agiscono sulle risorse. La mappatura comune sul CRUD (Create, Read, Update, Delete) è:
REST usa i metodi HTTP standard come i verbi che agiscono sulle risorse. La mappatura comune sul CRUD (Create, Read, Update, Delete) è:
| CRUD | Metodo | Uso tipico |
|---|
| Create | POST | Aggiunge una nuova risorsa a una collection |
| Read | GET | Recupera una risorsa o una lista |
| Update (completo) | PUT | Sostituisce interamente una risorsa |
| Update (parziale) | PATCH | Modifica alcuni campi |
| Delete | DELETE | Rimuove una risorsa |
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 invia l'intera rappresentazione e la sostituisce; PATCH /users/42 invia solo i campi da cambiare (es. { "email": "[email protected]" }).
Sono due proprietà diverse:
GET, HEAD, OPTIONS sono safe.GET, PUT, DELETE, HEAD sono idempotenti.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)
Gli intervistatori chiedono questo per capire se comprendi la semantica HTTP abbastanza bene da costruire API affidabili. La distinzione safe/idempotent non è accademica: governa direttamente ciò che client, proxy e CDN possono fare. I metodi safe possono essere messi in cache e prefetchati liberamente; i metodi idempotent possono essere ritentati automaticamente dopo un timeout di rete senza rischio di duplicare gli effetti collaterali — ed è per questo che un client può ritentare in sicurezza un PUT o un DELETE ma deve fare attenzione a ritentare un POST (potrebbe creare due ordini). L'errore classico è usare GET per innescare effetti collaterali (es. GET /users/42/delete), che rompe il caching e permette ai crawler di mutare dati per sbaglio. Scegliere il metodo giusto — e rispettarne il contratto di safety e idempotenza — è ciò che rende un'API prevedibile e sicura su cui costruire tooling.
Una raccolta di domande di colloquio IT con risposte dettagliate — da Junior a Senior.
Dona