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

Router

ثبت APIهای کلاس‌محور با route / router در Node.js

نمای کلی

یک زیرکلاس FusionBaseApi را با route(...) (یا router) تزئین کنید. ثبت هنگام import ماژول انجام می‌شود — قبل از listen() آن را از main.ts import کنید.

import { FusionBaseApi, route, status } from "fusion-framework";

export const ItemModule = route("/api/[module]/{id}", {
  tags: ["items"],
  desc: "Items by id",
})(
  class ItemModule extends FusionBaseApi {
    get() {
      return this.response({ id: this.params.id }, status.HTTP_SUCCESS);
    }
  },
);

پارامترهای مسیر از this.params خوانده می‌شوند (رشته). در صورت نیاز با coerceParam تبدیل کنید — Node برخلاف Python signature handler را bind نمی‌کند.

route در برابر router

نمادنقش
route(path, options?)اصلی — مسیر + متادیتای Swagger + middleware / roles
router(path, options?)همان تابع (alias)

قالب مسیر

توکنمعنی
متن ثابتسگمنت دقیق
[module]stem نام کلاس، حروف کوچک، پسوند Module حذف‌شده
{name}پارامتر دینامیک مسیر → this.params.name
route("api/[module]/{id}")(class ProductModule extends FusionBaseApi { ... });
// → /api/product/{id}

version: "v1" به مسیر resolve‌شده پیشوند می‌زند: /v1/api/product/....

گزینه‌ها

Optionکاربرد
tags, desc, title, deprecatedمتادیتای OpenAPI (وقتی فعال باشد)
versionپیشوند مسیر
middlewareلیست middleware فقط برای این route
rolesrequireRoles(...) را اضافه می‌کند
roleClaim / roleStateKeyسفارشی‌سازی lookup claim نقش‌ها

نمای درخواست

Accessorمحتوا
this.method / this.path / this.bodyپایهٔ درخواست
this.headers / this.params / this.queryMapها
this.stateکیسهٔ middleware
this.response(body, status?, headers?)helper پوشهٔ پاسخ

خطاها

HTTPException / پوشه‌های { status, body } را پرتاب یا برگردانید. ببینید Middleware.

در این صفحه