Skip to main content

错误响应格式

ABP 返回两种格式的错误,取决于错误来源:
  • 身份验证 / 速率限制中间件 错误使用 error 键:
  • 应用 / 路由 错误(验证、未找到等)使用 FastAPI 标准的 detail 键:
请在客户端同时处理这两种格式。 请求体验证错误(422)包含带 loc 路径的字段级详情:

HTTP 状态码

订单拒绝原因

通过 POST /place-orders 下单时,未通过业务验证的订单会在 declinedOrders 数组中返回(不作为HTTP错误)。每个被拒绝的订单包含 declineReason
重复的 requestUuid 不会作为拒绝原因返回。重复项会被静默跳过;如果请求中的每个订单都是重复的,则请求改为返回 409(见下文)。
被拒订单响应示例:

常见错误

身份验证 (401 / 403)

禁止访问 (403)

当缺少API密钥头、密钥不允许访问所请求的端点/运动项目/博彩公司,或尝试访问属于其他客户的资源时返回。

重复请求 (409)

仅当请求中的每个订单都是重复时返回 — 每个 requestUuid 在过去 30 分钟 内已被处理或正在处理中。如果只有部分订单是重复的,那些会被跳过,其余正常处理。

验证错误 (422)

请求体包含无效数据。检查 loc 字段以找到问题路径:

速率限制 (429)

超出您客户的每请求数。默认限制:100/秒(每客户可配置)。
窗口每秒重置 — 重试前等待 retry_after 间隔。

可靠性模式

ABP 实施了多种可靠性机制,可能影响您的集成:

熔断器

每博彩公司熔断器防止级联故障。如果某个博彩公司出现问题,针对该博彩公司的订单可能被拒绝,直到熔断器恢复。 连续失败后打开,自动测试恢复,博彩公司成功响应后恢复正常运行。

紧急模式

在罕见情况下,系统可能在维护或上游问题期间临时暂停订单处理。emergency WebSocket频道广播状态变更。

订单过期

订单默认 expiresAt 为创建后5秒(最长上限为24小时)。如果在此窗口内未下注,订单状态变为 EXPIRED。可设置自定义 expiresAt 用于更长时效的订单。

后续步骤

订单下注

了解成交、部分下注与拒绝原因。

WebSocket

实时跟踪订单与投注状态。