Этот API меняет модель проекта: сущности, поля, связи и настройки генерации. Он не работает с записями статей или товаров в БД приложения. API нужен для интеграции инструментов с редактором; обычная работа выполняется через Generator UI, автоматизация — через CLI.
Как с ним работает Generator UI
В Project settings и Content вы меняете настройки и сохраняете их через Finish. Интерфейс отправляет текущую ревизию модели, чтобы не затереть более новое изменение. Если состояние устарело, UI сообщает о конфликте.
В Generate команда Preview changes показывает будущие изменения, Generate применяет их, а History хранит результаты.
Запуск и сессия
Локальный сервер запускается через serve или start. Его сессия не связана с аккаунтом системы администрирования готового приложения.
admingen-cli --path ./docs-demo serve --addr 127.0.0.1:8080
curl --fail http://127.0.0.1:8080/healthz
/healthz подтверждает доступность сервера генератора. Он не проверяет готовность созданного приложения. UI открывает локальную сессию через POST /api/session; защищённые запросы передают выданный Bearer-токен.
Чтение модели и настроек
| Метод и путь | Результат |
|---|---|
GET /api/project |
Текущая модель проекта. |
PUT /api/project |
Сохранение допустимых настроек проекта. |
GET /api/entities |
Список сущностей. |
GET /api/model-editor |
Данные модели в формате редактора. |
GET /api/modules |
Список модулей. |
GET /api/modules/{moduleName} |
Данные одного модуля. |
GET /api/plan |
План генерации. |
GET /api/history |
История результатов. |
Изменение конкретной части модели
| Метод и путь | Действие |
|---|---|
POST /api/modules |
Создать модуль. |
PUT/DELETE /api/modules/{moduleName} |
Изменить или удалить модуль. |
POST /api/entities/entity-draft |
Создать сущность с проверкой ревизии. |
PUT /api/entities/{entityName}/settings |
Изменить настройки, не заменяя поля и связи. |
DELETE /api/entities/{entityName}/entity-draft |
Удалить сущность. |
POST /api/entities/{entityName}/field-draft |
Создать поле с согласованными параметрами. |
PUT/DELETE /api/entities/{entityName}/field-draft/{fieldName} |
Изменить или удалить поле. |
POST /api/entities/{entityName}/relation-draft |
Создать связь через текущий редактор. |
POST /api/entities/{entityName}/collection-draft |
Создать коллекцию. |
PUT/DELETE /api/entities/{entityName}/collection-draft/{relationName} |
Изменить или удалить коллекцию. |
PUT /api/entities/{entityName}/projection-fields |
Сохранить выборку virtual отдельно от остальных настроек. |
Есть и низкоуровневые маршруты: POST /api/entities/{entityName}/fields, PUT/DELETE .../fields/{fieldName}, POST .../relations, PUT/DELETE .../relations/{relationName}. Текущий UI использует команды для конкретного действия. Не заменяйте их отправкой целой устаревшей копии сущности: так можно потерять другие изменения.
Генерация, восстановление и переименование
POST /api/diff строит различия, POST /api/generate применяет генерацию. GET /api/manifest-rollback показывает восстановление сохранённой модели; POST по тому же адресу подтверждает его.
Переименование выполняется через POST .../fields/{fieldName}/rename-preview и POST .../fields/{fieldName}/rename. Эти операции проверяют ожидаемые ревизии.
Тело запроса должно соответствовать обработчику: данные модели и ревизии нельзя заменить произвольным JSON PATCH. При ошибке устаревшей ревизии перечитайте модель. Если неизвестно, завершился ли предыдущий запрос, сначала обновите состояние через Refresh. Повторное создание без проверки может повторить уже выполненное изменение.
HTTP-ошибки содержат message и дополнительный contractError; их формат отличается от CLI.
Что выбрать для своей задачи
Для ручной работы используйте Generator UI. Для повторяемых действий — CLI: он сам загружает модель и формирует корректное изменение. Локальный HTTP API выбирайте, когда нужен инструмент, интегрированный именно с редактором, а не external API готового приложения.