首页 > 解决方案 > request.scope 中的 FastAPI 路由器不正确

问题描述

我在 /routers/myrouter.py 有一个文件:

router = APIRouter(prefix="/myrouter", tags=['mytag'])

@router.get("/meta", status_code=200)
@api_log
async def endpoint(commons: dict = Depends(common_parameters)):

   rtr = commons['request'].scope['router']
   
   prefix = rtr.prefix
   tags = rtr.tags
   
   print(prefix)
   print(tags)

我已经在我的 main.py 文件中注册了这个路由器

app = FastAPI()
app.include_router(myrouter.router)

当我转到 url 时,我期待以下输出http://localhost:5000/myrouter/meta

/myrouter
['mytag']

但由于某种原因,我得到以下输出:


[]

即没有前缀或标签。为什么不识别路由器?

PS:我需要从请求对象(可能来自另一个文件)中获取路由器。

标签: pythonrestroutesfastapi

解决方案


推荐阅读