Начало работы
Установите Fusion Tool и создайте проект
Установка
Выберите операционную систему:
curl -fsSL https://raw.githubusercontent.com/cipherunits/fusion-tool/main/scripts/install.sh | bashВ Windows установщик кладёт fusion.exe в %LOCALAPPDATA%\Programs\fusion и обновляет пользовательский PATH. После этого откройте новый терминал и проверьте:
fusion --helpМожно установить из исходников через Rust:
git clone https://github.com/cipherunits/fusion-tool.git
cd fusion-tool && cargo install --path .Проверка версии
fusion --versionПример вывода:
fusion 1.2.6Создание проекта
Интерактивно
fusion initИли в указанную директорию:
fusion init my-appВам предложат указать:
- Язык — Python, TypeScript или C# (
asp-core/csharp) - Имя проекта
- Описание проекта
Без интерактива
fusion init --lang python --name fusion-test --description "A Fusion Framework project"| Аргумент | Описание |
|---|---|
[DIRECTORY] | Целевая папка (создаётся при отсутствии; по умолчанию — текущая) |
--lang | python, typescript, csharp или asp-core (алиасы C#) |
--name | Имя проекта |
--description | Описание проекта |
Пропущенные опции всё равно спросят интерактивно.
Примеры:
fusion init --lang python --name my-app
fusion init ./apps/demo --lang python --name demoСгенерированная структура
Для Python-проекта fusion init создаёт небольшой стартовый приложение — включая пример модуля products:
├── core/
│ └── settings.py
├── src/
│ └── modules/
│ └── products/
│ └── products.py
├── main.py
├── fusion-framework.toml
├── fusion.dev.json
├── fusion.prod.json
├── fusion.stage.json
└── .gitignoremain.py— точка входа: импортирует модули (чтобы классы@routeзарегистрировались), подключает опциональныйMIDDLEWARE, собираетFusionAppиз settings и слушает портsrc/modules/products/products.py— пример API-модуля; здесь же можно задать Swagger-метаданные на route (tags,desc,version, …)core/settings.py— загружает блокconfigизfusion.<env>.json(FUSION_ENV, по умолчаниюdev)
TypeScript-проекты используют ту же схему с main.ts, core/settings.ts и примером модуля в src/modules/…. C# (csharp / asp-core) скаффолдит entrypoint в стиле .NET и модули с [Route] вместо @route.
Значения окружений по умолчанию из CLI-скаффолда:
| Файл | Port | Host | Debug | Swagger |
|---|---|---|---|---|
fusion.dev.json | 8080 | 127.0.0.1 | true | on |
fusion.stage.json | 8081 | из env HOST | false | off |
fusion.prod.json | 9090 | из env HOST | false | off |
Запуск проекта
Установите фреймворк, затем запустите команду run по умолчанию в окружении dev:
pip install fusion-framework
fusion command run:devПри дефолтном fusion.dev.json (host 127.0.0.1, port 8080, Swagger включён):
| Что | URL |
|---|---|
| API | http://127.0.0.1:8080 |
| Swagger UI | http://127.0.0.1:8080/swagger |
Swagger / OpenAPI генерируется автоматически из модулей @route. Откройте Swagger UI, чтобы попробовать эндпоинты без отдельного клиента.
Далее: Команды и окружения — кастомные env, команды и глобальный конфиг Swagger.