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