Автоматизация 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 на проде — вопрос времени, а не «если».