← Назад к вопросам

В чем разница между POST, PUT и PATCH?

1.2 Junior🔥 241 комментариев
#API и интеграции

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Разница между POST, PUT и PATCH методами

Эти три HTTP метода используются для создания и изменения данных на сервере, но имеют принципиально разные семантику и применение.

POST — Создание нового ресурса

POST используется для создания новых ресурсов на сервере:

  • Создаёт новый ресурс, сервер обычно определяет его ID
  • Адрес не указывает конкретный ресурс: POST /api/users
  • Каждый POST запрос может создать новый ресурс (не идемпотентно)
  • Может использоваться и для выполнения действий (non-CRUD операции)
  • Обычно возвращает 201 Created с URL созданного ресурса
  • Пример: создание нового заказа, регистрация пользователя

PUT — Полная замена ресурса

PUT используется для полной замены существующего ресурса:

  • Заменяет весь ресурс целиком новыми данными
  • Адрес указывает конкретный ресурс: PUT /api/users/123
  • Идемпотентно — повторные запросы дают одинаковый результат
  • Требует полный набор данных (все поля ресурса)
  • Обычно возвращает 200 OK или 204 No Content
  • Если ресурс не существует, может создать его
  • Пример: замена всех данных профиля пользователя

PATCH — Частичное изменение ресурса

PATCH используется для частичного изменения ресурса:

  • Обновляет только указанные поля ресурса
  • Адрес указывает конкретный ресурс: PATCH /api/users/123
  • Идемпотентно (в большинстве случаев)
  • Требует только те поля, которые нужно изменить
  • Обычно возвращает 200 OK с обновленным ресурсом
  • Более эффективен чем PUT для малых изменений
  • Пример: изменение только email пользователя

Сравнительная таблица

ХарактеристикаPOSTPUTPATCH
НазначениеСозданиеПолная заменаЧастичное обновление
ИдемпотентностьНетДаДа
Требует IDНетДаДа
Нужны все поляЗависитДаНет
Статус201 Created200/204200

Практические примеры

POST — создание:

POST /api/users
{"name": "John", "email": "john@example.com"}
→ 201 Created, Location: /api/users/124

PUT — полная замена:

PUT /api/users/123
{"name": "Jane", "email": "jane@example.com", "age": 30}
→ 200 OK (заменены ВСЕ данные)

PATCH — частичное обновление:

PATCH /api/users/123
{"email": "newemail@example.com"}
→ 200 OK (изменён только email)

Значение для System Analyst

Понимание этих различий критично при проектировании REST API. Правильный выбор метода обеспечивает корректную семантику запросов, упрощает работу с API и предотвращает ошибки при интеграции между системами.

В чем разница между POST, PUT и PATCH? | PrepBro