以下是一个简单的使用中间件的 FastAPI 示例:
from fastapi import FastAPI, HTTPException, Depends
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
# 添加 CORS 中间件,以处理跨域请求
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 允许所有来源
allow_credentials=True,
allow_methods=["*"], # 允许所有 HTTP 方法
allow_headers=["*"], # 允许所有 HTTP 头部
)
# 自定义中间件
async def custom_middleware(request: Request, call_next):
# 在请求到达应用程序之前执行的操作
print(f"Processing request: {request.url}")
# 继续处理请求
response = await call_next(request)
# 在响应离开应用程序之后执行的操作
print(f"Processed response: {response.status_code}")
return response
# 将自定义中间件添加到应用程序
app.middleware("http")(custom_middleware)
# 路径操作函数
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
在这个例子中:
1. 使用 app.add_middleware 方法添加了 CORS 中间件,以便处理跨域请求。这是 FastAPI 内置的中间件,通过配置参数可以实现对跨域资源的控制。
2. 定义了一个名为 custom_middleware 的自定义中间件函数,它接受一个 Request 对象和一个 call_next 函数作为参数。在函数内部,你可以在请求到达应用程序之前执行一些操作,以及在响应离开应用程序之后执行一些操作。
3. 使用 app.middleware("http")(custom_middleware) 将自定义中间件添加到应用程序。在这里,我们将中间件绑定到 HTTP 请求。
4. 最后,有一个简单的路径操作函数 /,它返回一个简单的消息。
中间件提供了一种灵活的机制,允许你在应用程序的不同阶段执行自定义逻辑。你可以使用中间件来实现日志记录、身份验证、异常处理、性能监控等功能。确保了解 FastAPI 中间件的生命周期和使用方法,以便更好地满足应用程序的需求。
转载请注明出处:http://www.zyzy.cn/article/detail/7394/FastAPI