Ответ
Да, на уровне backend-логики это возможно, но это противоречит принципам REST и семантике HTTP.
Внутри обработчика POST-запроса можно выполнить любой код, включая SQL-запрос DELETE. Однако это создаёт путаницу в контракте API.
Проблемы использования POST для удаления:
- Нарушение идемпотентности: POST не является идемпотентным методом. Повторная отправка одного и того же запроса на удаление может привести к ошибке (например, "сущность не найдена") после первого успешного выполнения.
- Ухудшение читаемости API: Клиенты и разработчики ожидают, что DELETE означает удаление. POST — создание или сложное действие.
- Проблемы с кэшированием и стандартными инструментами.
Пример (нежелательная реализация):
POST /api/entity/remove HTTP/1.1
Content-Type: application/json
{"id": 456}
Правильная RESTful-альтернатива:
DELETE /api/entities/456 HTTP/1.1
Исключение — RPC-стиль API: Если ваше API построено в стиле Remote Procedure Call (RPC), где эндпоинты представляют собой действия (например, /removeEntity), то использование POST может быть оправдано. Но даже в этом случае лучше следовать общепринятым стандартам.