Ada sejumlah pertimbangan di sekitar pengiriman permintaan dan menangani respons dari API penyimpanan data Open Cloud.
Header HTTP
Seperti semua endpoint Open Cloud, permintaan penyimpanan data yang menggunakan otentikasi kunci API harus menyertakan header x-api-key. Untuk informasi lebih lanjut, lihat Kelola Kunci API.
- Kunci API yang salah atau hilang mengakibatkan kesalahan 401.
- Kunci API yang valid tetapi tidak memiliki izin yang sesuai mengakibatkan kesalahan 403.
Jika suatu permintaan menyertakan body, seperti permintaan buat atau perbarui, sertakan header Content-Type: application/json dan Content-Length. Sebagian besar klien secara otomatis menyertakan header ini.
Paginasi
Penyimpanan data sering kali berisi banyak entri, yang berarti kode Anda, terutama saat memanggil Daftar Entri Penyimpanan Data, harus menangani jumlah maksimum hasil dan halaman. Untuk mempelajari lebih lanjut, lihat Paginasi.
Filter
Jika Anda menggunakan prefiks dalam nama entri penyimpanan data Anda, Anda mungkin ingin memfilter panggilan GET Anda, seperti ini:
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})
Sintaks filter sangat terbatas. Lihat dokumentasi referensi untuk filter yang tersedia untuk penyimpanan data standar dan berurutan.
Izinkan flag hilang
Metode PATCH (perbarui) untuk penyimpanan data standar dan berurutan memiliki parameter allow_missing. Jika diatur ke true, parameter ini memungkinkan Anda untuk membuat entri yang belum ada sebelumnya daripada melemparkan kesalahan. Biarkan parameter ini pada nilai defaultnya false kecuali Anda memiliki alasan yang baik untuk tidak melakukannya; memperbarui entri yang tidak pernah dibuat sering kali mewakili kesalahan dalam logika pemrograman.
Skop
Banyak permintaan mengharuskan Anda untuk menentukan skop, bahkan jika itu adalah nilai default global. Skop ini berbeda dari skop izin dan memungkinkan Anda untuk membagi dan mengatur entri dalam penyimpanan data.
Alih-alih membuat skop non-default, kami sangat menyarankan untuk menggunakan prefiks. Untuk mempelajari lebih lanjut, lihat Daftar dan prefiks.
Content-MD5
API Open Cloud v1 mendukung checksum MD5 berbasis base64 yang bersifat opsional dalam beberapa permintaan, yang dapat mendeteksi masalah integritas data. Banyak bahasa memiliki fungsi bawaan untuk menghitung nilai dari header content-md5. Contoh berikut menggunakan Python:
$ echo "750" | python -c "import base64, hashlib; print(str(base64.b64encode(hashlib.md5(bytes(input(), encoding='utf8')).digest()), encoding='utf8'))"sTf90fedVsft8zZf6nUg8g==
Jika Anda mengalami masalah menghasilkan nilai content-md5 yang valid, Anda mungkin perlu mengenkripsi body permintaan Anda dalam UTF-8 sebelum menghitung checksum.