Код, интерфейсы и трафик без воды
lawebbox

Автоматизация API-эндпоинтов и типов без нейросетей: детерминированный подход к кодогенерации

Прод падает, фронтенд кричит, что типы не сходятся, а ты вручную копипастишь ручки из сваггера в код и надеешься на лучшее.

Максим Воронцов, Хардкорный бэкендер и девопс · обновлено 29 июня 2026 г.

Автоматизация API-эндпоинтов и типов без нейросетей: детерминированный подход к кодогенерации

Контракты API как костыль, который пора выкинуть

Суть проста и неприятна: большинство команд до сих пор поддерживают API-ручки и типы вручную. Меняешь схему на бэке — бегом правишь интерфейсы на фронте. Поменял в одном месте — ломается в другом. Всё это классическая история с дублированием, которая заканчивается ночными дежурствами и rollback-ами на проде.

Автор на Хабре решил не кормить GPT контрактами, а написать кодогенерацию — скрипты, которые из схемы (OpenAPI, Proto или что там используется) генерируют и эндпоинты, и типизацию. Принцип: одна точка правды, всё остальное — билд-степ. Если схема меняется, CI сам пересобирает ручки. Ни одна рука не касается кода напрямую. Прагматично, предсказуемо, без магии.

Почему не AI

Тут стоит остановиться. Мода на генерацию кода нейросетями — это отдельный слой костылей. LLM может сгенерировать ручку, которая компилится и даже проходит тесты, но внутренне — гнилая: несовместимые типы, пропущенные edge-кейсы, неочевидные null-ы. Плюс nondeterminism: один и тот же промпт возвращает разные результаты. На стейдже это раздражает, на проде — убивает.

Автор выбирает детерминированный подход: шаблоны + парсинг схемы. Никакого «AI, допиши мне этот контроллер». Результат воспроизводим, дифф в ревью читаемый, CI предсказуем. Для инженерной культуры это важнее, чем «ну GPT же написал, работает же».

Что проверить на практике

Если у вас в проекте есть хотя бы два сервиса, общающихся по API, — проверьте:

  • Где у вас точка правды? Сваггер-файл, Proto-описание, или — не дай бог — код на проде?
  • Есть ли кодогенерация типов и ручек в CI? Если нет, вы копипастите. Признайте это.
  • Кто последний раз трогал API-контракт вручную? Если ответ «в прошлом спринте» — вы технический долг уже копите.

Инструментов полно: OpenAPI Generator, protobuf codegen, graphql-codegen — выбирайте под свой стек. Главное не инструмент, а принцип: одна схема, автоматическая генерация, запрет на ручные правки сгенерированного кода.

Итого

Пост на Хабре — не революция, а напоминание о том, что автоматизация кодогенерации API — это solved problem. AI тут лишнее звено: медленнее, непредсказуемее, сложнее дебажить. Написали схему — сгенерировали — задеплоили. Если вы до сих пор руками синхронизируете контракты, у вас не процесс, а рутина на выживание. И следующий incident на проде — вопрос времени, а не «если».