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}
在应用程序运行时,对于浏览器发出的每个请求,中间件输出(Middleware works!)将出现在响应输出之前的控制台日志中。