FastAPI 作为 Python Web 框架,提供了强大的功能来构建高性能、易维护的 API 应用。
一、中间件(Middleware)
什么是中间件?
中间件是在每次请求进入 FastAPI 应用时都会被执行的函数。它在请求到达实际的路由处理函数之前运行,并且在响应返回给客户端之前再运行一次。
中间件的作用
中间件可以为每个请求添加统一的处理逻辑,常见应用场景包括:
- ✅ 性能监控
- ✅ 日志记录
- ✅ 身份认证
- ✅ 响应头处理
- ✅ 跨域处理
如何定义中间件
在函数顶部使用装饰器 @app.middleware("http"):
@app.middleware("http")
async def middleware(request, call_next):
print('中间件开始处理 -- start')
response = await call_next(request)
print('中间件处理完成 -- end')
return response
多个中间件的执行顺序
多个中间件的执行顺序是自下而上的:
客户端 → 中间件 B → 中间件 A → 路由处理函数 → 中间件 A → 中间件 B → 客户端
二、依赖注入(Dependency Injection)
为什么需要依赖注入?
在开发过程中,我们经常会遇到多个接口需要相同参数或逻辑的情况:
@app.get('/news/news_list')
async def get_news_list(
skip: int = Query(0, ge=0),
limit: int = Query(10, le=60)
):
return {"list": "新闻列表"}
():
{: }


