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

相关推荐
码界筑梦坊22 分钟前
120-基于Python的食品营养特征数据可视化分析系统
开发语言·python·信息可视化·数据分析·毕业设计·echarts·fastapi
logo_2831 分钟前
Xpath语法规则的学习和使用
javascript·python·xpath·xpath语法
快乐江湖1 小时前
「层层包装」—— 装饰器模式
开发语言·python·装饰器模式
m0_702036532 小时前
mysql如何通过索引减少行锁范围_mysql索引与加锁逻辑
jvm·数据库·python
用户0332126663672 小时前
使用 Python 设置 Word 文档文本的颜色
python
qxwlcsdn2 小时前
如何用 IndexedDB 存储从 API 获取的超大列表并实现二级索引
jvm·数据库·python
小新同学^O^2 小时前
简单学习 --> 模型微调
开发语言·人工智能·python·模型微淘
Muyuan19982 小时前
30.通过Claude code做项目系统测试
运维·服务器·人工智能·fastapi
2301_809244532 小时前
C#怎么使用协变和逆变 C#泛型中的in和out关键字协变逆变是什么意思怎么用【语法】
jvm·数据库·python
知识汲取者3 小时前
巨量引擎营销 API 完整文档
开发语言·数据库·python