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

相关推荐
运气好好的5 分钟前
golang如何理解Go 1.23迭代器协议_golang 1.23迭代器协议详解
jvm·数据库·python
2401_8246976613 分钟前
Go语言如何用systemd_Go语言systemd服务管理教程【总结】
jvm·数据库·python
2301_7756398918 分钟前
mysql修改字段长度是否影响数据_隐式转换与字符集限制分析
jvm·数据库·python
Dshuishui23 分钟前
我用 Claude Code 做了一个学术论文搜索工具
开发语言·人工智能·python·pip·uv
ㄟ留恋さ寂寞24 分钟前
怎样修改提示“表已空”的空状态界面_Empty State插画替换
jvm·数据库·python
研究点啥好呢25 分钟前
Momenta后端开发面试题精选:10道高频考题+答案解析(数据产线方向)
c++·python·面试·求职招聘
老歌老听老掉牙33 分钟前
空间点到平面的距离:几何意义与计算方法
python·平面
m0_5913647335 分钟前
SQL提升开发效率_使用CTE重构嵌套子查询逻辑
jvm·数据库·python
2401_8314194443 分钟前
JavaScript 中实现基于分组的前端产品筛选功能
jvm·数据库·python
曲幽44 分钟前
初探:用 FastAPI 搭建你的第一个 AI Agent 接口
python·ai·llm·agent·fastapi·web·chat·httpx·ollama