Логотип Fusion Framework от Cipher UnitFusion

Структура проекта

Стандартная раскладка приложения Fusion, создаваемая fusion init

Раскладка scaffold (Python)

fusion init --lang python создаёт структуру примерно такого вида:

my-app/
├── main.py                 # Required entry — listen() lives here
├── core/
│   └── settings.py         # Optional UPPERCASE overlay
├── src/
│   └── modules/
│       └── products/
│           └── products.py # Sample route module
├── fusion.dev.json         # Environment config + commands
├── fusion.stage.json
├── fusion.prod.json
└── fusion-framework.toml   # App metadata + installed [[modules]]

Точный набор файлов может отличаться в зависимости от версии Fusion Tool — при scaffolding считайте вывод CLI источником истины.

Роли файлов

ПутьВладелецРоль
main.pyВыИмпортирует route-модули, загружает настройки, регистрирует middleware, вызывает listen()
src/modules/**ВыRoute-модули (классы FusionBaseApi)
core/settings.pyВыOverlay настроек Python (имена UPPERCASE)
fusion.<env>.jsonВыHost/port/swagger/commands для этой среды — см. Settings
fusion-framework.tomlВы + CLIИдентичность приложения; [[modules]] после fusion add
.fusion/modules/CLIVendored library-пакеты (генерируются/управляются CLI)

Обязательное vs опциональное

Нужно для запускаОпционально
Точка входа, которая создаёт FusionApp и слушаетДополнительные среды
Хотя бы один зарегистрированный маршрут (или только поверхность Swagger/404)Library-пакеты
Обнаруживаемые настройки (или значения по умолчанию)core/settings.py

TypeScript / C#

Scaffolding отличается по языку, но идеи те же: одна точка входа, route-модули, environment JSON. См. страницы getting-started по языкам и Fusion Tool.

Сгенерированное / vendored

Не правьте вручную деревья vendored-пакетов под .fusion/modules/ как источник истины — меняйте upstream-репозиторий пакета и делайте re-add/update.

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