Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
# PUT запрос в HTTP
PUT запрос используется для полного обновления ресурса на сервере. Это один из основных методов REST API.
Основное назначение
PUT применяется когда нужно:
- Заменить весь ресурс целиком на новые данные
- Отправить полное состояние объекта
- Убедиться, что ресурс обновлен в соответствии с отправленными данными
Различие между PUT и POST
# POST — создание нового ресурса
POST /api/users
{
"name": "Иван",
"email": "ivan@example.com"
}
# Результат: создается новый пользователь с id=5
# PUT — полное обновление существующего
PUT /api/users/5
{
"name": "Иван Петров",
"email": "ivan.petrov@example.com",
"age": 30
}
# Результат: пользователь 5 полностью заменен новыми данными
Различие между PUT и PATCH
# PUT требует отправить ВСЕ поля объекта (идемпотентный)
PUT /api/users/5
{
"name": "Иван",
"email": "ivan@example.com",
"age": 30,
"phone": "+7-999-123-45-67"
}
# Если не отправить phone, он будет удален или очищен
# PATCH обновляет только переданные поля (частичное обновление)
PATCH /api/users/5
{
"age": 31 # обновляем только возраст
}
# Остальные поля остаются неизменными
Практический пример с Python requests
import requests
user_data = {
"id": 5,
"name": "Иван",
"email": "ivan@example.com",
"phone": "+79991234567",
"age": 30
}
# PUT запрос — полное обновление
response = requests.put(
"https://api.example.com/users/5",
json=user_data,
headers={"Content-Type": "application/json"}
)
if response.status_code == 200:
print("Пользователь успешно обновлен")
print(response.json())
else:
print(f"Ошибка: {response.status_code}")
Ключевые свойства PUT
- Идемпотентность — повторный запрос с теми же данными даст тот же результат
- Требует ID — нужен уникальный идентификатор ресурса в URL
- Полнота данных — должны отправляться все поля ресурса
- Безопасность — не должен иметь побочные эффекты
Когда использовать PUT
- Обновление профиля пользователя (замена всех данных)
- Обновление конфигурации
- Замена содержимого документа
- Синхронизация состояния между клиентом и сервером
Право хорошей практики в REST API — использовать PUT для полного обновления и PATCH для частичного, хотя многие API предпочитают использовать только POST или PATCH для упрощения.