FastAPI 中间件
中间件 是一个函数,它与每个请求一起处理(在被任何特定路径操作处理之前),也与每个响应一起处理,然后再返回。这个函数接收每个来到你的应用程序的请求。它可以通过运行其中定义的代码对请求进行一些处理,然后将请求传递给相应的操作函数来处理。它也可以在返回之前处理由操作函数产生的响应。
以下是FastAPI库中可用的一些中间件-
- CORSMiddleware
-
HTTPSRedirectMiddleware
-
可信赖的主机中间件(TrustedHostMiddleware
-
GZipMiddleware
FastAPI提供 app.add_middleware() 函数来处理服务器错误和自定义异常处理程序。除了上述集成的中间件外,还可以定义一个自定义的中间件。下面的例子定义了 addmiddleware() 函数,并通过使用 @app.middleware() 装饰器将其装饰成一个中间件
该函数有两个参数,HTTP请求对象和 call_next() 函数,该函数将发送API请求到其对应的路径并返回一个响应。
除了中间件函数外,应用程序还有两个操作函数。
import time
from fastapi import FastAPI, Request
app = FastAPI()
@app.middleware("http")
async def addmiddleware(request: Request, call_next):
print("Middleware works!")
response = await call_next(request)
return response
@app.get("/")
async def index():
return {"message":"Hello World"}
@app.get("/{name}")
async def hello(name:str):
return {"message":"Hello "+name}
随着应用程序的运行,对于浏览器提出的每个请求,中间件的输出(中间件工作!)将出现在控制台日志中,在响应输出之前。