有没有办法为fastapi应用程序中的每个APIRouter应用自定义route_class?

问题描述 投票:0回答:1

有没有办法为 fastapi 应用程序中的每个 APIRouter 应用自定义

route_class
?与 this 类似,但我不想创建每个传递参数的
APIRouter
实例,我想通过一个声明将其应用于所有实例。我似乎无法在文档中找到如何做到这一点。

我觉得奇怪的一件事是,我可以在定义路由器的同一个文件中设置

route_class
,但是如果我尝试在主函数(调用
include_router()
的地方)中执行此操作,它似乎没有影响。这是为什么?

提前感谢您的指导。

python fastapi
1个回答
0
投票

默认的

APIRoute
类是
APIRouter
__init__
中的默认值。如果你想改变这个选项,我能想到的是对
APIRouter
进行子类化,并为其
__init__
提供相同的一组项目,然后用你想要的类填充
route_class
参数。然后在您的应用程序中您可以实例化这个子类而不是
APIRouter

另一个选择是有一个函数负责将路由器添加到您的 FastAPI 应用程序。在该函数内,您像平常一样实例化

APIRouter
,然后更改它的
self.route_class
属性以指向所需的类。然后在您的应用程序中,您将调用此函数以将新路由器添加到您的 FastAPI 应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.