Чем отличаются POST для создания и PUT для обновления в REST API?

POST и PUT в REST API: основные отличия оба метода HTTP применяются для работы с ресурсами REST POST: создание нового ресурса, при этом идемпотентность не гарантируется PUT: полная замена или обновление существующего…

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

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

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

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

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

POST и PUT в REST API: основные отличия

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

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

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

В REST API методы POST и PUT описывают разные операции. POST в основном предназначен для создания нового ресурса, тогда как PUT используют для обновления или полной замены уже существующего. Главное различие связано с идемпотентностью методов и тем, кто определяет идентификатор ресурса.

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

  • POST является неидемпотентным методом и обычно отправляется на URI коллекции, например /users. Сервер создаёт новый ресурс, назначает ему уникальный идентификатор и возвращает результат клиенту. Повторная отправка POST, как правило, приводит к созданию новых отдельных ресурсов.
  • PUT — идемпотентный метод: клиент явно передаёт URL нужного ресурса, например /users/123, после чего запрос полностью заменяет ресурс по этому адресу. Если повторить PUT с теми же данными, итоговое состояние не изменится.
  • Различия в использовании: POST выбирают для создания ресурса, когда его идентификатор заранее неизвестен клиенту. PUT применяют, если идентификатор уже известен, а ресурс требуется полностью заменить либо создать с конкретным ID (upsert).
  • Влияние на API-дизайн: POST обычно используется для операций, которые создают новые сущности и изменяют состояние сервера, тогда как PUT предназначен для адресного и предсказуемого обновления ресурса.

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

В реальном REST API для пользователей запрос POST /users создаёт пользователя и назначает ему новый ID, а PUT /users/123 полностью заменяет данные пользователя с ID 123. Такое разделение помогает однозначно различать создание и обновление, а также упрощает повторную отправку запросов и кэширование.

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

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

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

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