向 Python FastAPI 应用程序添加服务的标准方法?

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

我将服务定义为提供 DRY 方法的类,可以从代码中的任何地方调用。

我的 FastAPI 控制器有一个端点:

@router.get("/health")
async def health_check():
  return {"status": "pass"}

我想将其更新为

return MyHelper().get_health_status
,其中
MyHelper
./services/my_helper.py
中定义。这里的标准方法是什么?

理想情况下,我想像在.NET core中那样使用依赖注入,其过程大致是:

  1. 在命名空间中定义服务(.NET 不关心文件路径,只要它是同一个根)。
  2. 将命名空间导入
    Startup.cs
    文件。
  3. 注册服务
    services.AddSingleton<IMyHelper, MyHelper>();
  4. 将助手注入到项目中任何其他文件的构造函数中。

在 FastAPI 项目中处理此问题的最佳方法是什么?是否内置了 DI 或应该使用什么第三方库?如果没有内置 DI,我该如何注册我的服务,这样我至少可以在路由器(“控制器”)文件中实例化它?

附言我正在阅读What is a Pythonic way for Dependency Injection?,但我仍然想知道在专门使用 FastAPI 时是否有偏好。同样,考虑到 REST API 基本上是如何内置到 .NET Core 中的,并且有一种“标准”方式(这不仅仅是实例化帮助类)。

python service fastapi
© www.soinside.com 2019 - 2024. All rights reserved.