fix(api): 增强API错误信息展示并修复Seedream图生图接口兼容性

This commit is contained in:
yuki
2026-07-19 15:01:37 +08:00
parent ccf6412a7c
commit 0ca35f46ca
4 changed files with 175 additions and 19 deletions
+18 -3
View File
@@ -339,14 +339,29 @@ function readApiErrorMessage(value: unknown): string {
if (!value) return "";
if (typeof value === "string") {
try {
return readApiErrorMessage(JSON.parse(value)) || value;
const parsed = JSON.parse(value);
const inner = readApiErrorMessage(parsed) || value;
if (inner === value && typeof parsed === "object" && Object.keys(parsed).length === 0) return "";
return inner;
} catch {
if (/<[a-z][\s\S]*>/i.test(value)) return `服务返回了 HTML 错误页面(${value.slice(0, 80)}...)`;
return value;
}
}
if (typeof value !== "object") return "";
const payload = value as { msg?: unknown; message?: unknown; error?: { message?: unknown } };
return readApiErrorMessage(payload.msg) || readApiErrorMessage(payload.message) || readApiErrorMessage(payload.error?.message);
const payload = value as { msg?: unknown; message?: unknown; error?: unknown; detail?: unknown };
// error 可能是字符串或含 message 的对象
const errorMsg =
typeof payload.error === "string"
? payload.error
: (payload.error as { message?: unknown })?.message;
return (
readApiErrorMessage(payload.msg) ||
readApiErrorMessage(payload.message) ||
readApiErrorMessage(errorMsg) ||
readApiErrorMessage(payload.detail) ||
""
);
}
function readAxiosError(error: unknown, fallback: string) {