Sobes.tech
Back to questions
Junior — Middle
72

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

Companies where asked
AstonAston

Answer from AI

sobes.tech 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 — для частичного изменения.