中间件
基础使用
"中间件"是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应返回之前工作。
要创建中间件你可以在函数的顶部使用装饰器 @app.middleware("http")
.
中间件参数接收如下参数:
request
- 一个函数
call_next
它将接收request
作为参数- 这个函数将
request
传递给相应的 路径操作 - 然后它将返回由相应的路径操作生成的
response
- 这个函数将
- 然后你可以在返回
response
前进一步修改它
记录请求时间
import time
from fastapi import FastAPI, Request
app = FastAPI()
@app.middleware("http")
async def add_process_time_header(request: Request, call_next):
start_time = time.time()
response = await call_next(request)
process_time = time.time() - start_time
response.headers["X-Process-Time"] = str(process_time)
return response