常用FastAPI middleware中间件的详细使用
在FastAPI中已经内置了Starlette大量的middleware中间件,这些中间件可以初步用于OAuth2、CORS、Gzip等功能的实现。下面我们对这些常用中间件的使用进行详细的说明。
多个中间件的执行顺序
在一个FastAPI程序中,可以通过add_middleware引入多个中间件,这时就会出现执行顺序的问题。FastAPI遵循后进先执行的原则,参考下面的例子:
main.py
import uvicorn as uvicorn
from fastapi import FastAPI
from fapi.middlewares.multi_middleware import MutilAMiddleware, MutilBMiddleware
app = FastAPI()
app.add_middleware(MutilAMiddleware, assigned_number=1)
app.add_middleware(MutilBMiddleware, assigned_number=2)
@app.get("/")
async def index():
print("'index' router executed!")
return "test middleware"
if __name__ == '__main__':
uvicorn.run(app="main:app", port=8088, reload=True)
multi_middleware.py
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.requests import Request
class MutilAMiddleware(BaseHTTPMiddleware):
def __init__(self, app, assigned_number):
super().__init__(app)
self.assigned_number = assigned_number
async def dispatch(self, request: Request, call_next):

本文详细介绍了FastAPI中常用的中间件,如内置的SessionMiddleware、CORSMiddleware等,以及它们的执行顺序和配置。同时涵盖了第三方提供的如HTTPSRedirectMiddleware、TrustedHostMiddleware和CSRFMiddleware等内容。
9793

被折叠的 条评论
为什么被折叠?



