Sobes.tech
Junior — Middle

Обяснете разликите между методите HTTP PUT и PATCH при актуализиране на ресурси.

sobes.tech AI

Отговор от AI

Основните разлики между HTTP методите PUT и PATCH при актуализиране на ресурси:

  • PUT — използва се за пълна актуализация на ресурса. Клиентът изпраща пълно представяне на ресурса, а сървърът заменя съществуващия ресурс с това ново.
  • PATCH — използва се за частична актуализация на ресурса. Клиентът изпраща само полетата, които трябва да бъдат променени, и сървърът актуализира само тях, оставяйки останалите без промяна.

Пример:

Ако имате обект на потребител с полета name и email:

  • При PUT заявка трябва да изпратите и двете полета, иначе липсващите ще бъдат изтрити или нулирани.
  • При PATCH заявка можете да изпратите само email, и сървърът ще актуализира само него.

В C# Web API методите могат да изглеждат така:

[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
    // Пълно обновяване на потребителя
}

[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
    // Частично обновяване на потребителя
}

Така, PUT е идемпотентен метод за пълна замяна, PATCH — за частични промени.