WiseLink Docs

錯誤與重試

錯誤碼、冪等規則與查詢方式。

WiseLink API v1 採用遵循 RFC 7807 思想的標準化 JSON 錯誤格式。所有非 2xx 的錯誤回應均包含機器可讀的 error.code、人類可讀的 error.message 以及全局追蹤標識 request_id。

統一錯誤響應結構

當 API 調用失敗時,服務端將返回標準結構的 JSON 實體:

標準錯誤回應範例 (HTTP 400 Bad Request)
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "regions 欄位不能為空,至少需要指定一個有效營運地區代碼。"
  },
  "request_id": "req_01HP8X9J23KQ7V"
}

HTTP 狀態碼與業務代碼對照

HTTP 狀態業務錯誤碼 (error.code)原因描述建議客戶端處置
400VALIDATION_ERROR必填欄位缺失、JSON 格式無效或字段類型不匹配修正請求正文字段後重新提交
401UNAUTHORIZED缺少 Authorization 標頭或 Bearer Key 無效/過期核對發放的 API Key 是否正確注入
403FORBIDDEN當前憑證無權訪問該接口(例如未開通 AI 服務)聯繫 WiseLink 商務確認權限範圍
404NOT_FOUNDURL 中指定的 task_id 或 assessment_id 不存在檢查資源 ID 是否正確拼寫或屬於不同環境
409IDEMPOTENCY_CONFLICT同一個 Idempotency-Key 嘗試提交了不同的請求內容若為新請求,生成全新的 UUID 作為冪等鍵
429RATE_LIMITED超出組織配額的併發調用頻率限制降低發送速率,使用指數退避重試
500INTERNAL_ERRORWiseLink 服務端內部未知異常保留 request_id 並聯繫技術支援反饋

冪等性衝突與處理機制

WiseLink 的 POST 資源建立接口採用冪等性保護:

  • 相同 Key + 相同內容:服務端將直接返回第一次成功建立的資源結果,HTTP 狀態碼通常保持一致,不會重復執行扣費或任務創建。
  • 相同 Key + 不同內容:服務端識別到潛在的代碼邏輯衝突,直接返回 409 IDEMPOTENCY_CONFLICT。客戶端應在業務有更新時主動換用全新的 UUID 冪等鍵。

查詢模式與無分頁說明

按 ID 精準查詢設計

API v1 的查詢端點均採用按資源唯一標識直接獲取的模式(如 GET /v1/ai/tasks/{task_id})。由於不提供全量批次列表掃描接口,因此不使用分頁參數(如 page、limit)。客戶端應在建立資源時自行持久化對應的資源 ID。

推薦的指數退避重試策略

對於 429 RATE_LIMITED、500 INTERNAL_ERROR 或底層 TCP 網絡超時,客戶端切忌在死循環中瞬間重發。推薦使用帶隨機抖動的指數退避算法(Exponential Backoff with Full Jitter):

公式推薦:

wait_time = min(max_backoff, base_backoff * (2 ^ attempt_count)) + random_jitter()

例如:初始等待 1 秒,後續依次等待 2s、4s、8s、16s,最大等待不超過 30 秒,每次附加 ±200ms 的隨機浮動,避免集群併發重試擊垮網關。