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

相关推荐
jason.zeng@15022072 分钟前
(五)多轮对话上下文,实现交互。
python·交互·llama
wangchunyu1142 分钟前
食韵味简 —— 免费开源的中式菜谱 API 服务
python·django·开源
znx9392 分钟前
因子分析:量化交易的底层核心与盈利逻辑基石
人工智能·python·机器学习·期魔方
jason.zeng@15022078 分钟前
(十)分层架构的多文件工程
python·架构·prompt·交互·ai编程·llama
小小张说故事8 分钟前
Python 装饰器到底是个啥?从 @ 符号到手写一个,5 个例子讲透
后端·python
haerapi18 分钟前
KingbaseES 全文检索实战之前:先建立中文搜索的可解释基线
开发语言·python·全文检索
专业程序开发源25 分钟前
SSM笔记本在线销售系统32649-计算机课程设计、毕业设计
java·spring boot·后端·python·django·php·课程设计
脉动数据行情129 分钟前
Python asyncio 异步实现比特币 BTC 实时行情监听 高并发版
开发语言·python·区块链
ClickHouseDB31 分钟前
ClickHouse Terraform Provider 正式支持 ClickStack 资源管理
网络·数据库·python
外收内放34 分钟前
Python基础语法练习题(55-56)
开发语言·python