文档模块化路由器
警卫和元数据
保护路由并在 OpenAPI 模式中描述它的装饰器。
卫兵
@UseGuard(*guards) 适用于控制器(每种方法)或一种方法。每个守卫都被添加为 FastAPI Depends,因此它声明了它需要的参数并引发拒绝调用:
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。