Browse Source

调整请求中间件

d1
H Vs 3 weeks ago
parent
commit
e0985c63e0
1 changed files with 36 additions and 5 deletions
  1. +36
    -5
      app/middleware.py

+ 36
- 5
app/middleware.py View File

@@ -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:


Loading…
Cancel
Save