Ответ
Технически — да, но это нарушает семантику HTTP и REST-архитектуру.
- POST — универсальный метод для операций, которые не вписываются в другие методы. Он не идемпотентен (повторный запрос может иметь другой эффект).
- DELETE — семантически правильный метод для удаления ресурса. Он идемпотентен (повторные запросы к одному URI дают тот же результат).
Пример (не рекомендуется):
POST /api/users/123 HTTP/1.1
Content-Type: application/json
{"action": "delete"}
Правильный подход (RESTful):
DELETE /api/users/123 HTTP/1.1
Когда POST для удаления может встречаться (как исключение):
- Ограничения инфраструктуры (например, старые прокси-серверы или брандмауэры блокируют метод DELETE).
- Операция не является простым удалением, а представляет собой сложное действие (например, "архивировать и пометить как неактивное"), которое лучше описывается RPC-стилем.
Вывод: Всегда предпочитайте метод DELETE для удаления ресурсов. Используйте POST только при непреодолимых технических ограничениях или для сложных нестандартных операций.