В чём разница между PUT и PATCH при обновлении ресурсов?

HTTP-методы обновления ресурсов в REST PUT: полностью заменяет ресурс необходимо передать весь ресурс целиком идемпотентен: повторное выполнение PUT не изменяет итоговый результат PATCH: изменяет ресурс частично…

Короткий ответ

Что ответить на собеседовании

HTTP-методы обновления ресурсов в REST PUT: полностью заменяет ресурс необходимо передать весь ресурс целиком идемпотентен: повторное выполнение PUT не изменяет итоговый результат PATCH: изменяет ресурс частично передаёт только поля, которые были изменены не всегда идемпотентен — это определяется реализацией PUT используют для полной замены, а PATCH — для частичного обновления PATCH сокращает объём трафика и делает обновление эффективнее

Подробный разбор

Ответ с пояснениями

В чём разница между PUT и PATCH при обновлении ресурсов?

  • HTTP-методы обновления ресурсов в REST
  • PUT: полностью заменяет ресурс
  • необходимо передать весь ресурс целиком
  • идемпотентен: повторное выполнение PUT не изменяет итоговый результат
  • PATCH: изменяет ресурс частично
  • передаёт только поля, которые были изменены
  • не всегда идемпотентен — это определяется реализацией
  • PUT используют для полной замены, а PATCH — для частичного обновления
  • PATCH сокращает объём трафика и делает обновление эффективнее

Итог: PUT выполняет полное обновление ресурса, а PATCH — частичное; методы отличаются семантикой и сценариями применения.

Подробный ответ

Основной ответ

PUT и PATCH — это HTTP-методы обновления ресурсов, однако их семантика и область применения различаются. При использовании PUT ресурс заменяется полностью: клиент передаёт серверу полное представление объекта, после чего оно становится новым содержимым существующего ресурса. Метод PATCH предназначен для частичных изменений: запрос содержит только поля, которые требуется обновить, тогда как остальные данные сохраняются без изменений.

Ключевые моменты

  • PUT является идемпотентным методом: если несколько раз отправить один и тот же запрос с неизменным телом, результат останется одинаковым, поскольку ресурс каждый раз заменяется полностью.
  • PATCH не обязательно идемпотентен — это зависит от используемого патча, например JSON Patch или Merge Patch. Обычно его выбирают, чтобы сократить трафик и снизить вероятность непреднамеренной перезаписи данных.
  • В REST API при работе с PUT обычно передают весь объект, в том числе поля, которые не менялись. Для PATCH достаточно указать изменённые поля, поэтому этот метод удобнее для частичного обновления ресурса.

Практический контекст

В современных системах и API, включая решения на основе OpenAPI или GraphQL, PATCH нередко применяют для оптимизации обновлений и сокращения объёма передаваемых данных. PUT подходит для ситуаций, когда необходимо строго контролировать целостность объекта и его состояние целиком. Например, в React 18 при работе с REST API для редактирования профиля пользователя рационально использовать PATCH: чтобы изменить email или имя, не требуется отправлять весь профиль.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку