在發送請求到 Open Cloud 資料儲存 API 及處理其回應時,有多個考量因素。
HTTP 標頭
像所有 Open Cloud 端點一樣,使用 API 金鑰驗證的資料儲存請求必須包含 x-api-key 標頭。欲了解更多資訊,請參見 管理 API 金鑰。
- 不正確或缺失的 API 金鑰將導致 401 錯誤。
- 有效的 API 金鑰但缺少正確的權限將導致 403 錯誤。
如果請求包含主體,例如創建或更新請求,則必須包含 Content-Type: application/json 和 Content-Length 標頭。大多數客戶端會自動包含這些標頭。
分頁
資料儲存通常包含許多條目,這意味著您的代碼,特別是在調用 列出資料儲存條目 時,必須處理最大結果數和頁數。欲了解更多資訊,請參見 分頁。
篩選器
如果您在資料儲存條目的名稱中使用前綴,您可能希望篩選您的 GET 請求,如下所示:
def list_entries(universe, data_store, filter):
list_path = f'universes/{universe}/data-stores/{data_store}/entries'
url = base_url + list_path
return requests.get(url, params={'filter': f'id.startsWith("global/{filter}")'}, headers={apiHeaderKey: apiKey})
篩選語法非常有限。請參見參考文檔中可用的 標準 和 有序 資料儲存的篩選器。
允許缺失標誌
標準和有序資料儲存的 PATCH(更新)方法具有 allow_missing 參數。如果設置為 true,則此參數允許您創建已不存在的條目,而不是拋出錯誤。除非您有充分理由,否則請將此參數保留為其默認值 false;更新從未創建的條目通常代表編程邏輯中的錯誤。
範圍
許多請求需要您指定範圍,即使是默認值 global。這些範圍不同於權限範圍,讓您能夠細分和組織資料儲存中的條目。
然而,我們強烈建議使用前綴,而不是創建非默認範圍。欲了解更多資訊,請參見 列舉和前綴。
Content-MD5
Open Cloud v1 API 在某些請求中支持可選的 base64 編碼 MD5 校驗和,這可以捕捉數據完整性問題。許多語言都有內置函數來計算 content-md5 標頭的值。以下示例使用 Python:
$ echo "750" | python -c "import base64, hashlib; print(str(base64.b64encode(hashlib.md5(bytes(input(), encoding='utf8')).digest()), encoding='utf8'))"sTf90fedVsft8zZf6nUg8g==
如果您在生成有效的 content-md5 值時遇到問題,您可能需要在計算校驗和之前將請求主體編碼為 UTF-8。