Poomi

错误处理

API 错误代码及处理方式

当 API 请求失败时,Poomi 返回带有相应 HTTP 状态码的 JSON 错误响应。

错误响应格式

{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "人类可读的错误描述。"
  }
}

错误代码

客户端错误

HTTP 状态码代码描述
400VALIDATION_ERROR请求体格式错误或缺少必填字段
400MISSING_IMAGE端点需要图像输入但未提供
400MISSING_TEXT端点需要文本输入但未提供
400MISSING_INPUT端点需要图像和/或文本输入但未提供
400INVALID_IMAGE图片格式不支持或文件大小超限
401UNAUTHORIZED缺少或无效的 Authorization 请求头
401INVALID_KEYAPI Key 不存在
402INSUFFICIENT_CREDITS账户积分不足
403KEY_DISABLEDAPI Key 已被禁用
403KEY_REVOKEDAPI Key 已被撤销
403KEY_EXPIREDAPI Key 已过期
404NOT_FOUND端点标识不存在或未发布

服务器错误

HTTP 状态码代码描述
502AI_CALL_FAILED上游 AI 模型调用失败

处理错误

检查 HTTP 状态码

  • 4xx 错误是客户端错误 — 修正请求后再重试
  • 5xx 错误是服务器错误 — 可以使用指数退避重试

示例:代码中的错误处理

const response = await fetch('https://www.poomi.pet/api/v1/{endpoint-slug}', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer pk_your_api_key_here',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ image: base64Data }),
});

if (!response.ok) {
  const { error } = await response.json();

  switch (error.code) {
    case 'INSUFFICIENT_CREDITS':
      // 提示用户充值积分
      break;
    case 'INVALID_KEY':
      // 检查 API Key 配置
      break;
    case 'AI_CALL_FAILED':
      // 重试请求
      break;
    default:
      console.error(`API error: ${error.code} - ${error.message}`);
  }
}

重试策略

对于 5xx 错误,使用指数退避:

  1. 等待 1 秒,重试
  2. 等待 2 秒,重试
  3. 等待 4 秒,重试
  4. 3 次尝试后放弃

On this page