لوگوی فریم‌ورک Fusion ساخته Cipher UnitFusion

دستورات

محیط‌ها، fusion.<env>.json و fusion command

محیط‌ها

هر محیط یک فایل در ریشهٔ پروژه به نام fusion.<env>.json است.

پروژه‌های جدید با سه محیط شروع می‌شوند:

فایلمحیط
fusion.dev.jsondev (پیش‌فرض)
fusion.stage.jsonstage
fusion.prod.jsonprod

با ساخت فایل دیگر — مثلاً fusion.test.json — محیط test ساخته می‌شود. ثبت اضافه لازم نیست.

شکل فایل محیط

{
  "env": "dev",
  "config": {
    "debug": true,
    "host": "127.0.0.1",
    "port": 8080,
    "secret_key": "change-me"
  },
  "commands": {
    "run": "python main.py"
  }
}
  • config — تنظیمات اپلیکیشن که توسط core/settings (و Fusion Framework در runtime) خوانده می‌شود
  • commands — دستورات شلی که با fusion command <name> اجرا می‌کنید

Swagger (اختیاری)

پروژه‌های جدید بلوک swagger را زیر config دارند (در dev فعال، معمولاً در stage / prod خاموش). برای کنترل UI docs، infoی OpenAPI و طرح‌های auth ویرایشش کنید:

{
  "env": "dev",
  "config": {
    "host": "127.0.0.1",
    "port": 8080,
    "swagger": {
      "enabled": true,
      "path": "/swagger",
      "title": "Fusion API Docs",
      "info": {
        "title": "Fusion API",
        "version": "1.0.0",
        "description": "API documentation generated by fusion-framework"
      },
      "servers": [{ "url": "/", "description": "Current host" }],
      "auth": {
        "persistAuthorization": true,
        "schemes": {
          "BearerAuth": {
            "type": "http",
            "scheme": "bearer",
            "bearerFormat": "JWT"
          },
          "ApiKeyAuth": {
            "type": "apiKey",
            "in": "header",
            "name": "X-API-Key"
          }
        },
        "global": [],
        "oauth": {
          "clientId": "",
          "appName": "Fusion API",
          "usePkceWithAuthorizationCodeGrant": true
        }
      },
      "navbar": {
        "enabled": true,
        "showUrlInput": true
      },
      "ui": {
        "deepLinking": true,
        "docExpansion": "list",
        "filter": true,
        "tryItOutEnabled": true
      }
    }
  },
  "commands": {
    "run": "python main.py"
  }
}

کلیدهای مفید:

کلیدهدف
swagger.enabledروشن/خاموش کردن Swagger UI
swagger.pathمسیر UI (پیش‌فرض /swagger)
auth.schemes / auth.globalتعاریف امنیت OpenAPI
auth.oauthپاس به initOAuth در Swagger UI
navbar.enabledنمایش نوار بالای Swagger
swagger.uiنگاشت به پیکربندی Swagger UI

اجرای دستورات

دستورات همان‌هایی هستند که زیر commands اعلام می‌کنید. با نام اجرا کنید:

fusion command run
fusion command run:dev
fusion command run --stage
fusion command run:stage
fusion command run --prod
fusion command run --env test

مثال: شروع API نمونه

بعد از fusion init و pip install fusion-framework:

fusion command run:dev

این python main.py را با FUSION_ENV=dev اجرا می‌کند. با config پیش‌فرض:

Fusion مستندات OpenAPI/Swagger را از ماژول‌های route شما می‌سازد (شامل ماژول شروع‌کنندهٔ products). با Swagger UI می‌توانید endpointها را صدا بزنید، schemaها را ببینید و auth را امتحان کنید — بدون راه‌اندازی جداگانه برای docs.

بدون فلگ یا پسوند :env، محیط از FUSION_ENV (اگر تنظیم شده) وگرنه dev گرفته می‌شود.

لیست دستورات اعلام‌شده برای یک محیط:

fusion command --stage

Fusion رشتهٔ شل را از ریشهٔ پروژه اجرا می‌کند (sh -c روی Linux/macOS، cmd /C روی Windows) و FUSION_ENV را تنظیم می‌کند تا settings فایل درست را بار کند. کد خروج فرآیند فرزند منتقل می‌شود — مفید برای اسکریپت و CI.

دستورات سفارشی

هر ورودی که لازم دارید اضافه کنید:

{
  "env": "stage",
  "config": { "port": 1010 },
  "commands": {
    "run": "docker compose up",
    "stop": "docker compose down"
  }
}
fusion command stop --stage

محیط‌های سفارشی

fusion.test.json بسازید، سپس:

fusion command run --env test

نصب پکیج فریم‌ورک

بعد از scaffold، پکیج runtime زبان پروژه را نصب کنید:

pip install fusion-framework

راهنماهای زبان: TypeScript / Node.js و C#.

در این صفحه