文档模块化路由器

警卫和元数据

保护路由并在 OpenAPI 模式中描述它的装饰器。

卫兵

@UseGuard(*guards) 适用于控制器(每种方法)或一种方法。每个守卫都被添加为 FastAPI Depends,因此它声明了它需要的参数并引发拒绝调用:

src/apps/admin/admin_controller.py
from fastapi import Header, HTTPExceptionfrom nexy.decorators import Controller, UseGuard  def require_token(x_token: str = Header(...)) -> None:    if x_token != "secret":        raise HTTPException(status_code=403, detail="Forbidden")  @Controller("/admin")@UseGuard(require_token)class AdminController:    async def get(self) -> dict:        return {"ok": True}

中间件装饰器

@Middleware(*middlewares) 的行为方式相同:这些是 FastAPI 依赖项,而不是 ASGI 中间件。对于真正的 ASGI 中间件,请使用 配置 或 中间件与安全 中的 useMiddlewares。

路由元数据

@UseRoute(...) 设置 OpenAPI 元数据。它不会改变路径。

论证 含义
name 路线名称
tags OpenAPI 标签
summary,description API 参考中的文本
deprecated 将操作标记为已弃用
include_in_schema 从架构中隐藏路线
operation_id 显式操作 ID
openapi_extra 额外的 OpenAPI 字段

回应

@UseResponse(...) 设置 status_code、response_class、response_model、responses 和序列化选项。

from nexy.decorators import Controller, UseResponse, UseRoute  @Controller("/users")class UserController:    @UseRoute(summary="List users", tags=["users"])    @UseResponse(status_code=200)    async def get(self) -> list[dict]:        return []

生成的 API 参考在 /docs 处提供,除非 useDocs = False。

后续步骤

在 GitHub 上编辑

Enter 打开结果,Esc 关闭。