python fastapi 中间件
时间: 2024-05-23 19:08:42 浏览: 170
在 FastAPI 中,中间件是一种可插拔的组件,用于在应用程序处理请求和响应之前或之后执行一些操作。中间件通常用于记录请求日志、认证、授权、限速等操作。
FastAPI 中间件是一个函数,它接收一个请求对象和一个处理函数作为参数,并在处理函数被调用之前或之后执行某些操作。中间件可以修改请求对象、响应对象或调用处理函数。
下面是一个示例中间件,它记录请求时间和路径:
```
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from datetime import datetime
app = FastAPI()
@app.middleware("http")
async def log_requests(request, call_next):
start_time = datetime.utcnow()
response = await call_next(request)
process_time = datetime.utcnow() - start_time
app.logger.info(f"{request.method} {request.url.path} {response.status_code} {process_time.total_seconds()}")
return response
app.add_middleware(CORSMiddleware, allow_origins=["*"])
```
上面的示例中间件记录了请求的时间和路径,并使用 `app.logger` 将其记录到日志中。此外,还添加了 CORS 中间件以允许跨域请求。
阅读全文