【问题标题】:fastapi dependency vs middlewarefastapi 依赖 vs 中间件
【发布时间】:2021-06-12 09:58:17
【问题描述】:

我是 fastapi 的新手。我曾使用其他语言的多个 Web 框架,并发现了用于各种目的的通用中间件模式。例如如果我有一个要验证的 API 路由,那么我将使用一个进行验证的中间件。如果我想增加传入的请求,我会使用中间件。 FastAPI 确实有中间件(文档中的一小部分),但也有依赖关系。我正在寻找对我的 API 路由进行身份验证并开始寻找示例,并且我找到的所有示例都使用依赖项。推荐使用什么(依赖或中间件)方法来验证 API 路由,为什么?

【问题讨论】:

    标签: python fastapi


    【解决方案1】:

    我的看法:

    • Dependency: 你用它来运行代码以准备变量、身份验证等。
    • Middleware: 你需要先检查一些东西,然后拒绝或转发请求到你的逻辑。

    中间件可以看作是依赖的超集,因为后者是一种中间件,它返回一个可以在请求中使用的值。不过,在中间件中,您可以记录您的请求或缓存结果并访问请求的响应(甚至转发请求、调用其他 API 等等)。

    TL;DR

    依赖是一种在处理请求之前需要的通用逻辑(例如,我需要与此令牌关联的用户 ID),而中间件可以做到这一点,它也可以访问对该请求的响应。 依赖项是创建用于身份验证的中间件的首选方式

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 2021-02-20
      • 2012-09-23
      • 2022-08-12
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      相关资源
      最近更新 更多