Açık Bulut veri deposu API'lerine istek gönderme ve yanıtları alma ile ilgili birkaç husus bulunmaktadır.
HTTP başlıkları
Tüm Açık Bulut uç noktalarında olduğu gibi, API anahtarı kimlik doğrulaması kullanan veri deposu istekleri x-api-key başlığını içermelidir. Daha fazla bilgi için API anahtarlarını yönetme sayfasına bakın.
- Yanlış veya eksik bir API anahtarı 401 hatası ile sonuçlanır.
- Doğru izinlere sahip olmayan geçerli bir API anahtarı 403 hatası ile sonuçlanır.
Eğer bir istek bir gövde içeriyorsa, örneğin bir oluşturma veya güncelleme isteği gibi, Content-Type: application/json ve Content-Length başlıklarını dahil edin. Çoğu istemci bu başlıkları otomatik olarak ekler.
Sayfalama
Veri depoları genellikle çok sayıda kayıt içerir, bu da kodunuzun, özellikle Veri Deposu Kayıtlarını Listeleme çağrısı yaparken maksimum sonuç sayısı ve sayfalarla başa çıkması gerektiği anlamına gelir. Daha fazla bilgi için Sayfalama sayfasına bakın.
Filtreler
Eğer veri deposu kayıtlarınızın adlarında önekler kullanıyorsanız, GET çağrılarınızı şöyle filtrelemek isteyebilirsiniz:
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})
Filtre sözdizimi son derece sınırlıdır. standart ve sıralı veri depoları için mevcut filtreler hakkında bilgi için referans belgelerine bakın.
Eksik bayrağa izin ver
Standart ve sıralı veri depoları için PATCH (güncelleme) yöntemleri allow_missing parametresine sahiptir. Bu parametre true olarak ayarlandığında, hata vermek yerine zaten mevcut olmayan kayıtlar oluşturmanıza olanak tanır. Bu parametreyi, gerçekten gerekli bir sebebiniz yoksa varsayılan değeri olan false'ta bırakın; hiç oluşturulmamış bir kaydı güncellemek genellikle programlama mantığında bir hatayı temsil eder.
Kapsamlar
Birçok istek, varsayılan değeri global olsa bile bir kapsam belirtmenizi gerektirir. Bu kapsamlar, izin kapsamlarından farklıdır ve veri deposundaki kayıtları alt bölümlere ayırmanıza ve düzenlemenize olanak tanır.
Ancak, varsayılan olmayan kapsamlar oluşturmak yerine, önekler kullanmanızı şiddetle tavsiye ederiz. Daha fazla bilgi için Listeleme ve önekler sayfasına bakın.
Content-MD5
Açık Bulut v1 API'si, bazı isteklerde isteğe bağlı base64 kodlu MD5 kontrol toplamını destekler ve bu, veri bütünlüğü sorunlarını yakalayabilir. Birçok dil, content-md5 başlığının değerini hesaplamak için yerleşik işlevlere sahiptir. Aşağıdaki örnek Python kullanmaktadır:
$ echo "750" | python -c "import base64, hashlib; print(str(base64.b64encode(hashlib.md5(bytes(input(), encoding='utf8')).digest()), encoding='utf8'))"sTf90fedVsft8zZf6nUg8g==
Geçerli bir content-md5 değeri üretme konusunda sorun yaşıyorsanız, kontrol toplamını hesaplamadan önce istek gövdenizi UTF-8 olarak kodlamanız gerekebilir.