Sobes.tech
Junior — Middle

Explica diferențele dintre metodele HTTP PUT și PATCH atunci când actualizezi resursele.

sobes.tech AI

Răspuns de la AI

Principalele diferențe dintre metodele HTTP PUT și PATCH la actualizarea resurselor:

  • PUT — este utilizat pentru o actualizare completă a resursei. Clientul trimite o reprezentare completă a resursei, iar serverul înlocuiește resursa existentă cu aceasta.
  • PATCH — este utilizat pentru o actualizare parțială a resursei. Clientul trimite doar câmpurile care trebuie modificate, iar serverul actualizează doar acele câmpuri, lăsând celelalte neschimbate.

Exemplu:

Dacă aveți un obiect de utilizator cu câmpurile name și email:

  • Cu o cerere PUT, trebuie să trimiteți ambele câmpuri, altfel cele lipsă vor fi șterse sau resetate.
  • Cu o cerere PATCH, puteți trimite doar email, iar serverul va actualiza doar acel câmp.

În C# Web API, metodele pot arăta astfel:

[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
    // Actualizare completă a utilizatorului
}

[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
    // Actualizare parțială a utilizatorului
}

Astfel, PUT este o metodă idempotentă pentru înlocuirea completă, PATCH pentru modificări parțiale.