Ответ
PUT — это HTTP-метод для полного обновления или создания ресурса по известному URI.
Основное назначение:
- Замена ресурса целиком новыми данными, предоставленными в теле запроса.
- Если ресурс по указанному URI существует — он обновляется. Если не существует — может быть создан (зависит от реализации API).
Ключевые особенности:
- Идемпотентность: Многократная отправка одного и того же PUT-запроса дает тот же результат, что и однократная.
- Требует передачи всех полей ресурса (в отличие от PATCH, который обновляет частично).
- Клиент определяет URI ресурса.
Пример запроса (обновление пользователя):
PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"active": true
}
Типичные коды ответа:
200 OKили204 No Content— при успешном обновлении.201 Created— если ресурс был создан.404 Not Found— если ресурс не существует и сервер не поддерживает создание через PUT.
Ответ 18+ 🔞
А, ну вот, смотри, опять про эти ваши HTTP-методы. PUT, говоришь? Ну, это как если ты пришёл в свою квартиру, блядь, и решил: "А нехуй тут всё старое, нахуй выкину, заново обставлю!"
Короче, суть в чём:
- Полная замена, ёпта. Ты берёшь и отправляешь на сервер все данные по ресурсу. Не "ой, поменяй только имя", а "на, вот тебе новый, целый, свежесобранный объект, старый — в топку".
- Если по этому адресу (URI) уже что-то лежало — оно накрывается медным тазом и заменяется твоим новым. Если пусто — ну, может, создадут, если сервер не мудак и разрешает.
Важные фишки:
- Идемпотентный, блядь. Это умное слово значит, что ты можешь этот запрос десять раз отправить — результат будет как от одного. Не накопится хуйни.
- Всё или ничего. Забыл одно поле передать? Сервер может решить, что это поле теперь должно быть пустым. В отличие от PATCH, который как хитрая жопа — подкрасит только то, что надо.
- Адрес-то ты указываешь сам. Говоришь серверу: "Слушай сюда, положи это вот сюда, на место
/api/users/123".
Пример, как это выглядит (обновляем какого-то бедолагу под номером 123):
PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"active": true
}
И что тебе в ответ прилетит:
200 OKили204 No Content— если всё прошло гладко, обновил, молодец, иди нахуй.201 Created— о, смотри-ка, а там ничего не было, так мы твой объект создали! Ебать ты строитель.404 Not Found— если по этому адресу нихуя нет, и сервер — пидарас шерстяной — не хочет через PUT ничего создавать. Иди лесом.