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

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

1.6 Junior🔥 211 комментариев
#API тестирование#Сети и протоколы

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

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

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

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

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

POST — создание новых ресурсов

POST используется для создания нового ресурса на сервере. При отправке POST-запроса сервер создаёт новый ресурс и обычно возвращает его с присвоенным ID.

POST /api/v1/users HTTP/1.1
Content-Type: application/json

{
  "name": "John Doe",
  "email": "john@example.com"
}

Особенности:

  • Не идемпотентен (повторные запросы создают новые ресурсы)
  • Результат зависит от реализации сервера
  • Часто возвращает 201 Created

PUT — полное обновление ресурса

PUT заменяет весь ресурс по идентификатору. Нужно передать полные данные ресурса целиком.

PUT /api/v1/users/123 HTTP/1.1
Content-Type: application/json

{
  "name": "Jane Doe",
  "email": "jane@example.com",
  "age": 30
}

Особенности:

  • Идемпотентен (повторный запрос даёт одинаковый результат)
  • Заменяет весь ресурс полностью
  • Если ресурс не существует, может его создать (206 или 201)

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

PATCH обновляет только переданные поля ресурса, остальные остаются без изменений.

PATCH /api/v1/users/123 HTTP/1.1
Content-Type: application/json

{
  "name": "Jane Smith"
}

Особенности:

  • Может быть идемпотентен или не быть (зависит от реализации)
  • Обновляет только указанные поля
  • Более гибкий и экономный по трафику

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

МетодНазначениеИдемпотентенТело запроса
POSTСозданиеНетОбязательно
PUTПолное обновлениеДаВсе поля
PATCHЧастичное обновлениеЗависитТолько изменяемые

Практические примеры для тестирования

При автоматизации тестирования API нужно проверять:

  • POST: создание с валидными данными, обработка ошибок валидации, проверка ID
  • PUT: полное обновление, отсутствие поля = удаление или ошибка, идемпотентность
  • PATCH: частичное обновление, сохранение неизменённых полей, обработка конфликтов

Выбор метода важен не только для правильности API, но и для написания эффективных и надёжных тестов.

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