TGViewer
Системный аналитик в финтехе | Ирина Орлова Системный аналитик в финтехе | Ирина Орлова @virafintex · 2.61K subscribers
Post #307 1.71K
Можно ли использовать POST для удаления?

Удаление — вещь интересная.

Вот представьте: раньше в банках хранились огромные папки клиентов. Клиенты отправляли курьеров передать подписанные документы, в банках кто-то принимал и подшивал документы в дело. Потом закрывался договор с клиентом, и папку передавали в архив архивариусу, а не отправляли сразу в шредер. А все потому, что законодательство регулирует необходимое время хранения документов, и это может быть 3–5 лет, а иногда и больше.

Потом все это переехало в электронный вид, появился электронный документооборот и ЭЦП, но законодательство в части хранения данных существенно не изменилось. Поэтому удалять вчерашнего клиента со всеми данными безвозвратно нельзя.

Можно использовать "мягкое удаление" и пометить клиента как неактивного. Информация по клиенту может переехать в архивные таблицы.

POST /client/delete

{
"clientId": 12345
}
На первый взгляд это выглядит странно. Ведь в REST для удаления существует метод DELETE:

DELETE /clients/12345
Но возникает вопрос: а что именно удаляется?

Если под удалением понимается не физическое удаление записи из базы данных, а выполнение бизнес-операции, то ситуация меняется. Часто за "удалением" скрывается целый процесс:

• перенос данных в архив;
• создание аудиторской записи;
• уведомление других систем;
• постановка задачи на последующее уничтожение данных по истечении срока хранения.

Фактически это уже не операция удаления записи.

В таких случаях использование POST логично:

POST /clients/12345/deactivate
или

POST /clients/12345/archive
или даже

POST /client/delete

{
"clientId": 12345,
"reason": "customer_request"
}
С точки зрения HTTP это не совсем канонический REST, зато хорошо отражает бизнес-смысл происходящего.

Поэтому ответ на вопрос "Можно ли использовать POST для удаления?" — да, можно.

Использование POST для удаления может быть оправдано, если под удалением скрывается сложный бизнес-процесс. Однако наличие soft delete само по себе не является причиной отказаться от метода DELETE. DELETE вполне может выполнять логическое удаление, архивирование и аудит внутри системы.

Главное, чтобы название API и его поведение были понятны всем участникам и после вас в команде осталась понятная документация об этом процессе.

Удаляли? Что использовали?

Post — 🙈

Delete — 😜

Полезно — ❤️
  • ❤ 31
  • 🤪 9
  • 🙈 7
More from @virafintex
  1. Oct 13, 2026​​🎙 Новый спикер AM18 · AI-Powered BA/SA Ирина Орлова — главный системный аналитик ПСБ Ба…
  2. Oct 13, 2026Всем привет! Скоро будет AI конференция. На которой я буду выступать.
  3. Oct 12, 2026Post #370
  4. Oct 8, 2026Websocket как свадьба Люди встречаются, влюбляются, женятся, взаимодействуют и интегрируют…
  5. Oct 6, 2026Навигация 3 Полезное и нетолько 1. Про Apache Flink и Apache Spark Streaming 2. Книга по S…
  6. Oct 1, 2026Что должно быть в вашем резюме, чтобы его заметили? Сейчас просто написать, что ты собирал…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →