Можно ли удалить объект с помощью GET

«Можно ли удалить объект с помощью GET» — вопрос из категории API и интеграции, который задают на 24% собеседований Бизнес Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, удалять объекты с помощью GET-запроса — плохая практика и нарушение REST-принципов. GET должен быть идемпотентным и безопасным (не изменять состояние сервера). Для удаления используйте DELETE.

Пример правильного подхода:

DELETE /api/users/123 HTTP/1.1

Если нужно передать данные (например, причину удаления), используйте тело запроса в DELETE или параметры в URL, но не GET.

Почему нельзя:

  • GET-запросы кэшируются, проксируются, попадают в логи — это риск случайного удаления.
  • Нарушает семантику HTTP (GET ≠ изменение данных).
  • Может быть заблокирован безопасностью (CSRF-токены обычно для POST/PUT/DELETE).