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

«В чем разница между POST, PUT и PATCH» — вопрос из категории API и интеграции, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

POST, PUT и PATCH — это HTTP-методы для работы с ресурсами, но они отличаются семантикой:

  • POST — создает новый ресурс. Сервер сам определяет ID. Повторные запросы могут создавать дубликаты.
    POST /users
    Body: {"name": "Alice"}
  • PUT — полностью заменяет ресурс по указанному URI. Если его нет — создает. Идемпотентен (повторные запросы не меняют результат).
    PUT /users/1
    Body: {"name": "Bob", "age": 30}
  • PATCH — частично обновляет ресурс (только указанные поля). Не идемпотентен, если логика обновления зависит от текущего состояния.
    PATCH /users/1
    Body: {"age": 31}

Ключевое отличие: POST — для создания, PUT — для полной замены, PATCH — для частичного обновления.