並行控制
注意
Cloud Partner 入口網站 API 已與整合,並將繼續在合作夥伴中心運作。 轉換引進了小型變更。 檢閱 Cloud Partner 入口網站 API 參考中所列的變更,以確保您的程式代碼在轉換至合作夥伴中心後繼續運作。 CPP API 應該只用於轉換至合作夥伴中心之前已整合的現有產品:新產品應使用合作夥伴中心提交 API。
每次呼叫 Cloud Partner 入口網站發佈 API 時,都必須明確指定要使用的並行控制策略。 無法提供 If-Match 標頭會導致 HTTP 400 錯誤回應。 我們提供兩種並行控制策略。
- 開放式 - 執行更新的用戶端會驗證數據自上次讀取數據后是否已變更。
- 最後一個獲勝 - 用戶端會直接更新數據,無論自上次讀取時間以來,是否有另一個應用程式修改過。
開放式並行工作流程
建議您搭配下列工作流程使用開放式並行存取策略,以確保不會對資源進行非預期的編輯。
- 使用 API 擷取實體。 回應包含ETag值,可識別實體目前儲存的版本(在回應時)。
- 在更新時,請將這個相同的 ETag 值包含在強制 If-Match 要求標頭中。
- API 會比較要求中收到的 ETag 值與不可部分完成交易中實體的目前 ETag 值。
- 如果 ETag 值不同,API 會
412 Precondition Failed
傳回 HTTP 回應。 此錯誤表示,自用戶端上次擷取實體之後,另一個進程已更新實體,或要求中指定的ETag值不正確。 - 如果ETag值相同,或 If-Match 標頭包含通配符星號字元 (
*
),則 API 會執行要求的作業。 API 作業也會更新實體的預存 ETag 值。
- 如果 ETag 值不同,API 會
注意
在 If-Match 標頭中指定通配符 \ 會導致 API 使用 Last-one-wins 並行策略。 在此情況下,不會進行 ETag 比較,而且不會進行任何檢查,就會更新資源。