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 |
roles | requireRoles(...) را اضافه میکند |
roleClaim / roleStateKey | سفارشیسازی lookup claim نقشها |
نمای درخواست
| Accessor | محتوا |
|---|---|
this.method / this.path / this.body | پایهٔ درخواست |
this.headers / this.params / this.query | Mapها |
this.state | کیسهٔ middleware |
this.response(body, status?, headers?) | helper پوشهٔ پاسخ |
خطاها
HTTPException / پوشههای { status, body } را پرتاب یا برگردانید. ببینید Middleware.