Что такое HTTP-метод PUT в REST API?

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

Ответ

PUT — это идемпотентный HTTP-метод для полного обновления ресурса по указанному URI. Он заменяет все текущие представления ресурса данными из запроса.

Ключевые характеристики:

  • Полная замена: Тело запроса должно содержать новое полное состояние ресурса.
  • Идемпотентность: Многократный вызов с одними данными даёт тот же результат, что и однократный.
  • Создание ресурса: Если ресурс по указанному URI не существует, сервер может создать его (обычно с ответом 201 Created). Это зависит от реализации API.

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

PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "Alice",
  "email": "alice@example.com"
}

Типичные коды ответов:

  • 200 OK — обновление успешно.
  • 201 Created — ресурс был создан.
  • 204 No Content — обновление успешно, тело ответа не передаётся.
Отличие от PATCH: PUT PATCH
Заменяет весь ресурс. Обновляет только указанные поля (частичное обновление).
Всегда идемпотентен. Идемпотентность не гарантирована спецификацией.
Клиент должен знать полное состояние. Клиент отправляет только изменяемые данные.