Как работает HTTP-метод PUT при частичном обновлении ресурса?

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

Ответ

PUT — это идемпотентный метод, требующий полной замены ресурса. Клиент должен отправить полное представление, даже если меняется одно поле.

Пример запроса:

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

{
  "id": 123,
  "name": "Updated Name",
  "email": "old@example.com",
  "role": "user"
}

Ключевые моменты:

  1. Идемпотентность — повторные идентичные запросы не меняют результат.
  2. Семантика замены — сервер интерпретирует тело как новую версию ресурса.
  3. Ответы сервера:
    • 200 OK или 204 No Content — при успешном обновлении.
    • 201 Created — если ресурс создан.
    • 400 Bad Request — при неполных или некорректных данных.

Для частичных обновлений используйте метод PATCH, который предназначен для модификации отдельных полей.