fastapi自定义中间件

fastapi自定义中间件

1、自定义中间件类

python 复制代码
from fastapi import Request
from starlette.middleware.base import BaseHTTPMiddleware

class MyMiddleware(BaseHTTPMiddleware):
    def __init__(self, app,*args, **kwargs):
        super().__init__(app,*args, **kwargs)

    async def dispatch(self, request: Request, call_next):
        print("MyMiddleware =============================== ")
        # 接收来自客户端的Request请求;
        headers = dict(request.scope['headers'])
        # 将Request请求传回原路由
        response = await call_next(request)
        return response

2、使用自定义中间件

python 复制代码
app.add_middleware(MyMiddleware)

3、中间件执行顺序,从下往上执行

python 复制代码
app.add_middleware(xx1)
app.add_middleware(xx2)

会先执行xx2再执行xx1

相关推荐
嘻嘻哈哈樱桃几秒前
牛客经典101题题解集--哈希
java·数据结构·python·算法·leetcode·职场和发展·哈希算法
2301_78731243几秒前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
qq_432703662 分钟前
CSS如何引入CSS预加载器配置_优化样式编译流程提升效率
jvm·数据库·python
深度学习lover3 分钟前
<数据集>yolo航拍军事目标识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·航拍军事目标识别
架构师老Y3 分钟前
002、Prompt基础:大模型交互的第一性原理
人工智能·python·prompt
2401_832365524 分钟前
如何用 FormData 配合 Fetch 实现无刷新的多文件上传
jvm·数据库·python
2401_871492856 分钟前
如何在网页中实现国际象棋棋子的拖拽与格点吸附功能
jvm·数据库·python
m0_674294647 分钟前
JavaScript窗口大小调整resize事件的适配方案
jvm·数据库·python
qq_3926906612 分钟前
JavaScript中Symbol类型的唯一性特征与创建规范
jvm·数据库·python
u01102251212 分钟前
Go语言如何处理multipart_Go语言multipart表单教程【精通】
jvm·数据库·python