在FastAPI中,我使用SQLAlChemy和PYDANIC返回数据.
@router.get("/1", response_model=User)
def read_user(db: Session = Depends(get_db)):
db_user = user_module.get_user(db, user_id="1")
if db_user is None:
raise HTTPException(status_code=404, detail="User not found")
return db_user
这种方法帮助我标准化了返回模型,但我希望将所有API的响应格式统一为{"code": 0, "msg": "success", "data": {...}}
,以便将原始返回模型中的用户模型放在"data"字段中,使其更易于前端管理.
我try 使用FastAPI中间件来实现,但它无法识别Swagger和其他文档中的用户返回模型.如果我使用嵌套模型重新定义通用的Pydtic返回模型,则无法将SQLAlChemy返回的数据模型操作为所需的用户模型.
有没有办法解决我的需求,或者有没有更好的解决方案?
将FastAPI中的响应格式统一到 {"code": 0, "msg": "success", "data": {...}}
,同时保留简单的数据模型,并确保在Swagger和其他文档中正确识别.