有没有办法为 fastapi 应用程序中的每个 APIRouter 应用自定义
route_class
?与 this 类似,但我不想创建每个传递参数的 APIRouter
实例,我想通过一个声明将其应用于所有实例。我似乎无法在文档中找到如何做到这一点。
我觉得奇怪的一件事是,我可以在定义路由器的同一个文件中设置
route_class
,但是如果我尝试在主函数(调用include_router()
的地方)中执行此操作,它似乎没有影响。这是为什么?
提前感谢您的指导。
默认的
APIRoute
类是 APIRouter
的 __init__
中的默认值。如果你想改变这个选项,我能想到的是对 APIRouter
进行子类化,并为其 __init__
提供相同的一组项目,然后用你想要的类填充 route_class
参数。然后在您的应用程序中您可以实例化这个子类而不是APIRouter
。
另一个选择是有一个函数负责将路由器添加到您的 FastAPI 应用程序。在该函数内,您像平常一样实例化
APIRouter
,然后更改它的 self.route_class
属性以指向所需的类。然后在您的应用程序中,您将调用此函数以将新路由器添加到您的 FastAPI 应用程序。