浏览代码

调整请求中间件

d1
H Vs 3 周前
父节点
当前提交
e0985c63e0
共有 1 个文件被更改,包括 36 次插入5 次删除
  1. +36
    -5
      app/middleware.py

+ 36
- 5
app/middleware.py 查看文件

@@ -172,11 +172,42 @@ async def http_context(request: Request, call_next):

# 构造统一格式的响应
if response.status_code == 200:
result = ResponseData(
data=business_data,
result=Result(code=200, message="请求成功!", status="succeed"),
timestamp=datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f"),
)
# result = ResponseData(
# data=business_data,
# result=Result(code=200, message="请求成功!", status="succeed"),
# timestamp=datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f"),
# )

try:
business_data = json.loads(response_body_str)
except Exception as e:
business_data = {"error": f"Unable to decode response body: {str(e)}"}
if "code" in business_data:
message=business_data.get("message","请求失败!")
result = ResponseData(
data=None,
result=Result(code=business_data.get("code",500), message=message, status="failed"),
timestamp=datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")
)
else:
# 构造统一格式的响应
result = ResponseData(
data=business_data,
result=Result(code=200, message="请求成功!", status="succeed"),
timestamp=datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")
)
response_info = {
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"status_code": response.status_code,
"headers": dict(response.headers),
"body": result.model_dump(),
}
logger.info(f"{request_id} 响应: {json.dumps(response_info, separators=(',', ':'), default=str, ensure_ascii=False)}")
# 返回修改后的响应
return JSONResponse(content=result.model_dump())

else:
message = "请求失败!"
if response.status_code == 404:


正在加载...
取消
保存