Что означает принцип полноты (partial update) в HTTP-методе PATCH?

«Что означает принцип полноты (partial update) в HTTP-методе PATCH?» — вопрос из категории API тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Полнота в PATCH означает, что клиент передает только изменяемые атрибуты ресурса, а не его полное представление. Это противоположность методу PUT, который требует отправки всего ресурса для полной замены.

Пример PATCH-запроса для обновления email пользователя:

PATCH /api/users/123 HTTP/1.1
Content-Type: application/json

{
  "email": "new.email@example.com"
}

Сравнение с PUT:

  • PATCH (частичное обновление): Отправляется только поле email. Остальные поля (name, age) остаются неизменными.
  • PUT (полная замена): Пришлось бы отправить ВСЕ поля ресурса (id, name, age, email), даже если меняется только одно.

Преимущества PATCH: экономия трафика, уменьшение вероятности конфликтов при параллельном редактировании, более интуитивный API для частичных изменений.