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

相关推荐
智擎GEO5 分钟前
中山GEO优化哪个靠谱
人工智能·python
for_ever_love__7 分钟前
python爬虫: 数据解析
开发语言·爬虫·python·xpath
AR-26710-23 分钟前
机器学习复习收官Day12
人工智能·python·机器学习·scikit-learn
xzal1224 分钟前
Python之filter()和map()的区别(仅供学习参考)
笔记·python
随遇而安zx40 分钟前
【地基篇】---JVM 类加载 源码解析(基于 Java 8)
java·jvm·python
2601_962300471 小时前
Python TensorFlow对比PyTorch_Python TensorFlow和PyTorch在机器学习中的差异
pytorch·python·深度学习·机器学习·tensorflow
__zRainy__3 小时前
Node系列 · Express:cors 中间件
中间件·express
承渊政道3 小时前
【Python编程—从入门到实践】(Python条件判断完全入门:从布尔表达式到列表中的if实战)
开发语言·python·pycharm·条件判断·布尔表达式
StevenSurpass3 小时前
智能工厂场景:FastPrintAgent 分布式打印中间件落地应用方案
分布式·mqtt·http·中间件·打印·fastreport
circuitsosk3 小时前
企业知识库 RAG 从 62% 到 91%:分块策略、混合检索与重排序的调优全记录
python·知识库问答·rag·面试项目·ai工程化·混合检索