Сайт ↗
Разделы документации
О проекте · 0.8.1

Как устроены генератор и созданное приложение

Путь от модели к исходникам, слои backend и точки подключения собственного кода.

На этой странице

Admingen — Headless CMS генератор. В Generator UI вы описываете приложение и видите будущие изменения файлов. Созданное приложение работает самостоятельно: у него собственные зависимости, PostgreSQL и система администрирования. Для обслуживания запросов генератор ему не нужен.

Как модель превращается в код

manifest → нормализация → план → шаблоны → diff → запись файлов

Каждый этап отвечает на свой вопрос:

  1. Манифест задаёт желаемую структуру приложения.
  2. Нормализация проверяет типы, ссылки и операции, добавляет допустимые значения по умолчанию.
  3. План определяет, какие изменения нужны.
  4. Шаблоны формируют ожидаемое содержимое файлов.
  5. Diff показывает отличие от текущих файлов.
  6. Запись применяет изменения с учётом владельца файла и сохранённых хешей.

Так ошибку модели можно обнаружить до записи исходников. Сохранение формы Generator UI меняет описание проекта, но не обновляет его БД.

Из каких слоёв состоит генератор

Слой За что отвечает
Domain Модель, правила и преобразования без зависимости от HTTP и файловой системы.
App Сценарии работы: загрузка, проверка изменения, план и генерация.
Adapters HTTP для Generator UI и CLI для работы из терминала.
Infrastructure YAML, файловая система, шаблоны и сравнение файлов.
Cmd Сборка зависимостей и запуск исполняемого файла.

UI и CLI обращаются к одной прикладной логике. Сохранение через Finish и соответствующая команда используют одни правила модели.

Как организовано созданное приложение

В Go backend выделены domain, app, HTTP- и PostgreSQL-адаптеры. SQL-запросы и ограничения БД описаны явно. История миграций пополняется новыми файлами: уже выпущенные миграции не переписываются.

Система администрирования использует React, TypeScript и MUI, общий слой запросов и сессии. Модули группируют сущности внутри монолитного приложения. Создание модуля не выделяет отдельный микросервис: модель данных, сборка и выпуск остаются согласованными для приложения.

Как генерация работает вместе с custom

Вы можете одновременно развивать модель через UI и писать собственную логику. Типовой код обновляется при Generate, а custom-зоны подключаются через явные точки расширения: обработчики операций, композицию зависимостей и дополнения интерфейса. Генератору не нужно искать и заменять фрагменты внутри ваших файлов.

Точечное расширение списка или поля сохраняет обновление стандартной части интерфейса. При полной замене страницы вы берёте на себя её загрузку данных, проверки прав, ошибки и доступность. Варианты описаны в руководстве по расширениям.

Какие технологии используются

Go и chi отвечают за HTTP-маршруты, pgx — за работу с PostgreSQL. ORM не скрывает SQL и изменение схемы. React и TypeScript описывают интерфейс и данные, MUI предоставляет компоненты, библиотека запросов управляет загрузкой и повторным чтением, Vite — разработкой и сборкой.

Точные версии смотрите в go.mod и package.json своего выпуска. Шаблоны входят в бинарник генератора; admingen дополнительно содержит собранный UI. Модель и история самого генератора хранятся в файлах проекта. PostgreSQL принадлежит созданному приложению, а не центральному сервису генератора.

С чего начать знакомство

Для первого приложения откройте быстрый старт и обзор Generator UI. Как эти части используются вместе, показывает интеграция сайта Admingen.