Ответ
Для изменения данных в REST API используются методы PUT и PATCH. Их ключевое отличие — в объеме изменяемых данных.
PUT
- Полная замена ресурса. Клиент должен отправить полное представление ресурса.
- Если передать неполные данные, отсутствующие поля могут быть сброшены в
nullили значения по умолчанию. - Идемпотентен: многократный вызов с одними данными дает тот же результат, что и однократный.
PUT /api/users/123 HTTP/1.1
Content-Type: application/json
{
"name": "Alice",
"email": "alice@example.com",
"age": 30
}
PATCH
- Частичное обновление ресурса. Клиент отправляет только изменяемые поля.
- Остальные поля ресурса остаются нетронутыми.
- Не всегда идемпотентен, зависит от реализации.
PATCH /api/users/123 HTTP/1.1
Content-Type: application/json
{
"age": 31
}
Выбор метода:
- Используйте PUT, когда клиент управляет всем состоянием ресурса (например, редактирование профиля через форму).
- Используйте PATCH для оптимизации трафика и обновления отдельных полей (например, смена статуса или настройки).
⚠️ Важно: Точная семантика методов может зависеть от реализации сервера. Всегда сверяйтесь с документацией конкретного API.