Ответ
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 |
|---|---|---|
| Заменяет весь ресурс. | Обновляет только указанные поля (частичное обновление). | |
| Всегда идемпотентен. | Идемпотентность не гарантирована спецификацией. | |
| Клиент должен знать полное состояние. | Клиент отправляет только изменяемые данные. |