Например, метод, считающийся “безопасным”, может внезапно менять данные, а “идемпотентный” - перестаёт быть им. Поэтому на собеседованиях часто проверяют: понимает ли QA, как ВСЁ ДОЛЖНО быть по стандарту, а не «как сделано в конкретном проекте».
Разберём базовые, но частые вопросы 👇
Что делают PUT, POST и PATCH?
🔹 POST - Create
Создаёт новую сущность. Может также создавать коллекцию сущностей. Каждый вызов POST - это новая запись.
🔹 PUT - Full update
Предназначен для полного обновления ресурса или его создания, если он не существует.
💡 По стандарту PUT должен заменять всё представление ресурса, то есть если вы отправили только одно поле, остальные считаются удалёнными.
Но! На практике backend-разработчики часто реализуют PUT как частичное обновление, чтобы не приходилось передавать все поля. Например, если вы отправляете только
projectName: "QA", сервер обновляет только это поле, а остальное остаётся без изменений. Такое поведение удобно, но не соответствует канону. Это особенность реализации конкретного API, а не стандарт HTTP.
🔹 PATCH - Partial update
Этот метод специально создан для частичного обновления ресурса. Поэтому, если вам нужно изменить только часть данных, корректнее использовать PATCH.
⚙️ Из источника (MDN):
> PUT создаёт или заменяет представление ресурса данными, переданными в теле запроса.
🧠 На собеседованиях полезно упомянуть:
- PUT - по стандарту полная замена существующего ресурса или создание нового ресурса.
- PATCH - частичное обновление.
- Но в реальной жизни всё зависит от реализации со стороны разработки.
А у вас как реализовано на проекте?
PUT как полное обновление или частичное? Делитесь в комментариях 👇
Сохраните этот пост и отметьте коллегу!
Больше полезных разборов у @protestinginfo на:
Онлайн‑курсе по подготовке к собеседованиям и тестам по тестированию ПО 180 дней
По-отдельности программы:
🎓 Онлайн-вебинары по вопросам с собеседований
🧪 API, интеграции, SQL