fastapi 通过 中间件修改request body

开发过程中遇到的一个问题:就是想要修改request中的请求体,具体代码如下

class CustomMiddleware:
   def __init__(self, app):
       self.app = app

   async def __call__(self, scope, receive, send):
       if scope["type"] != "http":
           await self.app(scope, receive, send)
           return

       async def modify_body():
           message = await receive()
           assert message["type"] == "http.request"

           body: bytes = message.get("body", b"")
           body: str = body.decode()
           data = json.loads(body)
           data["value"] = "456"

           message["body"] = json.dumps(data).encode()
           return message

       await self.app(scope, modify_body, send)


app.add_middleware(CustomMiddleware)

recive 是一个异步函数

posted @   学习的乐趣(^v^)  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示