Sobes.tech
Junior — Middle

Spiega le differenze tra i metodi HTTP PUT e PATCH nell'aggiornamento delle risorse.

sobes.tech AI

Risposta dell'AI

Le principali differenze tra i metodi HTTP PUT e PATCH nell'aggiornamento delle risorse:

  • PUT — viene utilizzato per un aggiornamento completo della risorsa. Il client invia una rappresentazione completa della risorsa, e il server sostituisce la risorsa esistente con questa nuova.
  • PATCH — viene utilizzato per un aggiornamento parziale della risorsa. Il client invia solo i campi da modificare, e il server aggiorna solo quelli, lasciando gli altri invariati.

Esempio:

Se hai un oggetto utente con i campi name e email:

  • Con una richiesta PUT, devi inviare entrambi i campi, altrimenti quelli mancanti verranno eliminati o reimpostati.
  • Con una richiesta PATCH, puoi inviare solo email, e il server aggiornerà solo quello.

In C# Web API, i metodi possono apparire così:

[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
    // Aggiornamento completo dell'utente
}

[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
    // Aggiornamento parziale dell'utente
}

Pertanto, PUT è un metodo idempotente per la sostituzione completa, PATCH per modifiche parziali.