POST-запрос с пустым телом, или Как не надо проектировать API

Канал о системном и бизнес-анализе, продуктовом мышлении и архитектуре. Как выявлять реальные проблемы, строить работающие решения и не терять здравый смысл в IT. Все вопросы - @innokentyB

apihttppost-запрос

Я думал, такое бывает только в айтишных страшилках. Но нет — это реальный прод.

Делаем интеграцию. Задача простая: добавить комментарий к сущности в сторонней системе. Присылают Swagger, Postman-коллекцию — всё чинно. Открываю и проваливаюсь в кроличью нору.

Картина маслом: Есть эндпоинт на добавление коммента. Это POST. Казалось бы, логично. Но дальше начинается магия:

Тело запроса (Body) — абсолютно пустое.

Текст комментария, все ID, метаданные — всё запихнуто в URL и PATH параметры.

Что должно произойти в голове человека, чтобы спроектировать API вот так? Это как прийти в ресторан, заказать суп, но вместо того чтобы положить его в тарелку, официант распишет его состав на чеке и скажет: «Ешьте текст».

Почему это больно: Мы часто спорим о «высоких материях», но иногда всё упирается в базу.

  • GET — получить.
  • POST — создать.
  • PUT/PATCH — изменить.

Это не просто «душные правила» из учебников. Это семантика. Это язык, на котором общаются системы. Когда вы его ломаете, вы создаете легаси, которое будет сниться в кошмарах следующим поколениям аналитиков.

К чему я это всё: В «Вайб-аналитике» есть важное правило: структура возникает в процессе, но она должна опираться на фундамент. ИИ — крутой напарник, он может собрать прототип за час, но если вы не понимаете семантику HTTP, вы просто научите нейронку плодить такой же треш быстрее, чем человек.

А какой самый странный эндпоинт видели вы? Пишите в комментах, померимся шрамами. 👇

Мем «API-кошмар»: слева офисная диаграмма HTTP-эндпоинтов и методов, справа тёмная сцена с красным кодом и монстром.
Иллюстрация: ожидание против реальности при плохом дизайне API.

Дискуссия

Константин Альбертович Китаев
В одной системе есть апи, в которой все запросы пост. Получить, обновить, удалить - в параметрах запроса.
PRO анализ в ИТ
Константин Альбертович Китаев
В одной системе есть апи, в которой все запросы пост. Получить, обновить, удалить - в параметрах запроса.
именно параметрах, не теле?
Константин Альбертович Китаев
PRO анализ в ИТ
именно параметрах, не теле?
Да, отдельный параметр. Но там, где фильтр нужен, он в теле
PRO анализ в ИТ
Константин Альбертович Китаев
Да, отдельный параметр. Но там, где фильтр нужен, он в теле
ну по факту просто SOAP на чистый HTTP перенесли
Константин Альбертович Китаев
PRO анализ в ИТ
ну по факту просто SOAP на чистый HTTP перенесли
Типа того, да
Присоединиться к обсуждению →

Читайте так же