feat(annotation): 优化知识同步服务的响应处理

- 在HTTP请求后添加响应解包功能
- 实现_code_方法来处理API响应格式
- 添加错误码检查和异常抛出机制
- 提取数据字段并返回正确的内容结构
- 保持原有安全JSON序列化功能不变
This commit is contained in:
2026-01-22 20:23:37 +08:00
parent 9376382791
commit 90c5cc44e8

View File

@@ -349,7 +349,8 @@ class KnowledgeSyncService:
response = await client.request(method, url, **kwargs)
response.raise_for_status()
if response.content:
return response.json()
payload = response.json()
return self._unwrap_response(payload, response)
return None
def _safe_json_dumps(self, payload: Any) -> str:
@@ -363,3 +364,17 @@ class KnowledgeSyncService:
return response.text
except Exception:
return ""
def _unwrap_response(self, payload: Any, response: httpx.Response) -> Any:
if not isinstance(payload, dict):
return payload
if "code" not in payload or "data" not in payload:
return payload
code = str(payload.get("code"))
if code != "0":
raise httpx.HTTPStatusError(
f"响应返回错误 code={code} message={payload.get('message')}",
request=response.request,
response=response,
)
return payload.get("data")