共用方式為


轉介 API 回應碼

適用於:合作夥伴中心 |合作夥伴中心推薦

適當的角色:轉介管理員 |推薦使用者

合作夥伴中心轉介 REST API 會傳回包含狀態代碼的 JSON 物件。 此程式代碼指出您的要求是否成功或失敗的原因。

成功回應

2xx 狀態代碼表示已成功接收、瞭解和接受用戶端的要求。 下列 2xx 狀態代碼表示成功回應:

  • 200:成功確認
  • 201:已建立資源
  • 202:已接受
  • 204:無內容可返回

錯誤回應

任何具有 4xx5xx 狀態代碼的回應都包含錯誤訊息,其中包含該程式代碼錯誤狀況的詳細數據。

下表列出並描述可針對錯誤案例傳回的 HTTP 狀態代碼。

狀態碼 狀態訊息 描述
400 錯誤請求 無法處理要求,因為格式有誤或不正確。
401 未經授權 必要的驗證資訊遺失或對資源無效。
403 禁止 系統拒絕您存取所要求的資源。 使用者可能沒有足夠的權限。
404 找不到 所要求的資源不存在。
405 方法未獲得允許 資源上不允許要求中的 HTTP 方法。
406 無法接受 此服務不支援 Accept 標頭所要求的格式。
409 衝突 目前的狀態與要求所預期的狀態衝突。 例如,指定的父資料夾可能不存在。
410 消失 伺服器不再提供要求的資源。
411 需要指定長度 請求必須包含 Content-Length 標頭。
412 先決條件失敗 要求中提供的前置條件(例如 if-match 標頭)不符合資源的目前狀態。
413 要求實體太大 要求大小超過上限。
415 不支援的媒體類型 要求的內容類型是服務不支援的格式。
416 無法滿足的請求範圍 指定的位元組範圍無效或無法使用。
422 無法處理的實體 無法處理要求,因為其語意不正確。
423 已鎖定 所要存取的資源已遭到鎖定。
429 過多要求 用戶端應用程式受到限制,不應嘗試再次發送請求一段時間。
500 內部伺服器錯誤 處理要求時發生內部伺服器錯誤。
501 未實作 未實作所要求的功能。
503 服務無法使用 服務暫時無法進行維護,或已超載。 您可以在延遲一段時間 (要延遲多久可於 Retry-After 標頭中指定) 後重複提出此要求。
504 閘道逾時 作為代理伺服器時,伺服器嘗試完成請求,但未能及時收到來自上游伺服器的回應。 可能會與 503 一起發生。
507 儲存體不足 達到記憶體配額上限。
509 超過頻寬限制 因超過最大頻寬上限,客戶端應用程式被限制速度。 您的應用程式可以在一段時間后再次重試要求。

錯誤資源類型

錯誤回應是單一 JSON 物件,其中包含名為錯誤的單一屬性。 此物件會包含錯誤的所有詳細資料。 您可以使用這裡傳回的資訊,而不使用 HTTP 狀態碼,或者也可以同時使用兩者。

下表和程式代碼範例描述錯誤回應的架構。

名稱 類型​​ 描述
程式碼 字串 總是返回。 表示所發生錯誤的類型。 非空值。
訊息 字串 總是返回。 詳細說明錯誤,並提供更多偵錯資訊。 非 Null 無空白。 最大長度為 1,024 個字元。
內部錯誤 物體 選擇性。 另一個錯誤物件,其中包含有關錯誤發生之更具體的資訊。
innerError.code 數值字串 如果 innerError 為非 Null,則一律傳回 。 在頂端錯誤碼值下提供更具體的錯誤碼資訊。
內部錯誤.訊息 字串 如果 innerError 為非 Null,則一律傳回 。 在頂端錯誤訊息字串下提供更具體的錯誤訊息。
內部錯誤.詳細資訊 陣列物件 選擇性。 包含更多關於錯誤的詳細資訊。 主要適用於輸入驗證錯誤。
目標 字串 選擇性。 錯誤來源的目標。

範例錯誤回應

{
  "error": {
    "code": "unauthenticated",
    "message": "The caller is not authenticated.",
    "innerError": {
      "code": "99902",
      "message": "Request not authenticated",
      "details": null
    }
  }
}

另一個已 填入 innerError.details 物件的範例:

{
  "error": {
    "code": "invalidRequest",
    "message": "The request is malformed or incorrect.",
    "innerError": {
      "code": "99901",
      "message": "InvalidInput",
      "details": [
        {
          "InvalidReferralForCoSellConversion": [
            "If PartnerLed referral has no solution it cannot be converted to co-sell referral"
          ]
        }
      ]
    }
  }
}

Code 屬性

code 屬性包含下列其中一個可能的值。 應用程式應準備好處理其中任何一項錯誤。

代碼 Http 狀態代碼 描述
invalidRequest 400 要求的格式錯誤或不正確。
unauthenticated 401 呼叫端未通過驗證。
accessDenied 403 呼叫端沒有執行此動作的權限。
itemNotFound 404 找不到資源。
資源已修改 409 自從呼叫端上次讀取後,要更新的資源已變更,通常是 eTag 不相符。
前提條件失敗 412 要求中提供的前置條件(例如 if-match 標頭)不符合資源的目前狀態。
generalException 500 發生未指定的錯誤。
serviceNotAvailable 503 無法使用服務。 請在延遲一段時間後再次嘗試要求。 可能會有 Retry-After 標頭。

Message 屬性

位於根目錄的 message 屬性含有要給開發人員閱讀的錯誤訊息。 錯誤訊息不會當地語系化,而且不應該直接向用戶顯示。 您的程式代碼不應該只檢查 message 值,因為它們可以隨時變更,而且通常包含失敗要求特有的動態資訊。 您應該針對屬性中 code 傳回的錯誤碼撰寫程式代碼,然後取得更多詳細數據,將其與消息正文結合。

InnerError 物件

innererror物件可能會以遞歸方式包含更多innererror具有更特定錯誤碼的物件。 用戶端應用程式在處理錯誤時,應該遍歷所有可用的錯誤碼,並選擇使用他們能理解的最詳細錯誤碼。

您的應用程式在巢狀 innererror 物件中可能會遇到一些錯誤。 應用程式不需要處理這些錯誤,但如果有選擇,就可以這麼做。 服務可能會新增錯誤碼或隨時停止傳回舊錯誤碼,因此所有應用程式都必須能夠處理 [基本錯誤碼]。

錯誤碼

以下是 API 所傳回的錯誤碼:

HTTP 狀態 HTTP 錯誤碼 錯誤碼 描述
錯誤請求 400 99901 無效的輸入
未經授權 401 99902 未經授權的存取
錯誤請求 400 99903 遺漏輸入
未找到 404 99904 找不到資源
內部伺服器錯誤 500 99905 未指定錯誤
請求過多 429 99906 太多要求
內部伺服器錯誤 500 99907 暫時性內部錯誤
錯誤請求 400 99908 屬性為不可更新的
錯誤請求 400 99909 屬性不可為 Null
條件未滿足 412 99910 Etag 值不匹配
錯誤請求 400 99911 邀請的轉介狀態無效
錯誤要求 400 99912 需要類型為 『name』 的解決方案
禁止 403 99913 不允許列入清單的組織建立資源
禁止 403 99914 不允許列入清單的組織參與共同銷售業務
內部伺服器錯誤 500 99915 內部要求執行失敗
衝突 409 99917 已透過另一個要求修改的資源
前置條件失敗 (PreConditionFailed) 412 99918 要求中提供的前置條件(例如 if-match 標頭)不符合資源的目前狀態。
錯誤請求 400 99919 無效的轉介資格,無法更新
內部伺服器錯誤 500 99999 處理要求時的一般例外狀況