Junior
Parli del metodo PUT nell'API REST.
sobes.tech AI
Risposta dell'AI
Il metodo PUT viene utilizzato per creare o aggiornare una risorsa all'URI specificato.
Caratteristiche principali:
- Idempotenza: L'esecuzione ripetuta della stessa richiesta PUT con lo stesso corpo porterà allo stesso stato della risorsa sul server (anche se la risposta del server può variare).
- Sostituzione completa: La richiesta PUT invia una rappresentazione completa della risorsa, sostituendo quella esistente.
- Creazione o aggiornamento: Se la risorsa all'URI specificato non esiste, PUT la crea. Se esiste, la aggiorna. La mancanza della risorsa in una richiesta PUT riuscita generalmente porta alla creazione, che di solito restituisce lo stato 201 Created. L'aggiornamento di una risorsa esistente di solito restituisce 200 OK o 204 No Content (se non c'è corpo nella risposta).
Scenari di utilizzo tipici:
- Aggiornamento completo del profilo utente.
- Creazione di una risorsa se il client ne definisce l'URI.
Esempio di richiesta PUT:
PUT /users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json
{
"id": 123,
"name": "Nuovo Nome",
"email": "new.email@example.com"
}
Il server riceverà questa richiesta e creerà un utente con id=123 o sostituirà completamente le informazioni dell'utente con quell'ID con i dati del corpo della richiesta.
PUT si differenzia da POST in quanto:
- PUT viene utilizzato per aggiornare o creare una risorsa su URI noto, definito dal client. POST viene utilizzato per creare una risorsa, dove il server definisce l'URI della nuova risorsa, o per altre azioni che non rientrano in altri metodi HTTP.
- PUT è idempotente, POST no. Le richieste POST ripetute con lo stesso corpo possono creare più risorse uguali o causare effetti collaterali diversi.
Tabella di confronto tra PUT e POST:
| Caratteristica | PUT | POST |
|---|---|---|
| Scopo | Creare o aggiornare una risorsa | Creare risorsa, inviare dati |
| Idempotenza | Sì | No |
| Definizione URI | Dal client | Dal server |
| Impatto sulla risorsa | Sostituisce o crea completamente | Normalmente aggiunge o esegue un'azione |