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

Router

Регистрация классовых API с route / router в Node.js

Обзор

Декорируйте подкласс FusionBaseApi через route(...) (или router). Регистрация происходит при импорте модуля — импортируйте его из main.ts до listen().

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);
    }
  },
);

Path-параметры читаются из this.params (строки). При необходимости приводите через coerceParam — Node не биндит сигнатуры handlers, как Python.

route vs router

СимволРоль
route(path, options?)Основной — путь + метаданные Swagger + middleware / roles
router(path, options?)Та же функция (alias)

Шаблоны путей

ТокенЗначение
Статический текстТочный сегмент
[module]Stem имени класса в нижнем регистре, суффикс Module снимается
{name}Динамический path-параметр → this.params.name
route("api/[module]/{id}")(class ProductModule extends FusionBaseApi { ... });
// → /api/product/{id}

version: "v1" добавляет префикс к resolved-пути: /v1/api/product/....

Опции

ОпцияНазначение
tags, desc, title, deprecatedМетаданные OpenAPI (когда включено)
versionПрефикс пути
middlewareСписок middleware только для маршрута
rolesДобавляет requireRoles(...)
roleClaim / roleStateKeyНастройка lookup claim ролей

Представление запроса

AccessorСодержимое
this.method / this.path / this.bodyБазовые поля запроса
this.headers / this.params / this.queryКарты
this.stateСумка middleware
this.response(body, status?, headers?)Helper конверта ответа

Ошибки

Бросайте или возвращайте конверты HTTPException / { status, body }. См. Middleware.

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