Veri Depoları için API İstekleri İşlenmesi

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Standart veri depoları için Open Cloud API'lerine ve sipariş edilen veri depolarına gönderilen istekleri doğru bir şekilde nasıl ele alacağınızı anlamalısınız. Bilgi için API'nin kullanımı hakkında, Kullanım Rehberi bakın.

İzin

Tüm Açık Bulut API'leri gibi, veri depolama noktalarının tüm isteklerin x-api-key başlığını içermesi gerekir, bu da isteğe geçersizyetkiye sahip bir API anahtarı içerir. Bu, anahtarı deneyim ve veri mağazaiçin uygulamanı

Aşırı hız yapmak

Tüm sonuç noktalarının iki türlü evren seviye sınırlayıcı vardır: istemeleri dakika başına sınırlayıcı ve istemeleri dakika başına göndermeyi sağlayan . Her deneyimde, istemeleri dakika başına gönder

Lua API'sine göre, bu sınırlar şu anda kullanıcı sayısına göre boyutlandırılmaz. Bu sınırları aşmak, uç noktasını döndürür 429 Too Many Requests.

Standart Veri Depoları Sınırlandırma

İstek TürüYöntemSınırlamalar
Yazıyı

    Girişi Ayarla

  • Girişi Artır
  • Girişi Sil

  • 10 MB/min/evren yazma hızı
  • 300 istek/min/evren
  • >

Oku

    Liste Verileri Depolama Listeleri Girişleri Listeleme Girişi Al 1> Giriş Versiyonlarını Listele1>

    4> Giriş Versiyonunu Al

    4>

  • 20 MB/min/evren yazma çıkışı
  • 300 istek/min/evren
  • >

Sıralama Deposu Sınırlarını Zorlayan

İstek TürüYöntemSınırlamalar
Yazıyı
  • Oluştur
  • Artış
  • Güncelleme
  • 1> Sil1>

  • 300 istek/dakika/evren
Oku

    Listeyi Listeleyin Alın ]

  • 300 istek/dakika/evren

Giriş Onayı

talepgöndermeden önce, formatting gereksinimleri ve kısıtlamalara dayalı endpoints'ları doğrulayın. Bir bileşen, bu tablodaki gereksinimlerin ve kısıtlamaların ötesinde ek gereksinimleri olabilir. Bir parametre bu kısıtlamaların dışında bir gereksinim olmazsa, endpoints'un bir 400 Bad Request döndüğünü.

GirişTürNotlar
universeIdsayı
  • Deneyiminizin benzersiz kimliği. Aşağıdaki şekilde görüntülenir Evren Kimliği .
datastoreNameyapı

    Uzunluk 50바이트 veya daha az olmalıdır.

  • Boş olamaz.
scopeyapı

    Bir veri mağazaalanı. Aşağıdaki gibi görün: Görünümler.

  • Uzunluk 50바이트 veya daha az olmalıdır.
entryKeyyapı

    Uzunluk 50바이트 veya daha az olmalıdır.

  • Boş olamaz.
content-md5yapı
roblox-entry-attributesyapı
  • JSON nesneyi tarafından seri hale getirildi.
  • Uzunluk 300'den daha az olmalıdır.
roblox-entry-useridsYapı
  • 0-4 sayılarındaki JSON matrisi tarafından seri olarak.
  • 4'ten fazla kullanıcı kimliği yok.
cursoryapı
  • İstek edilen sonuç ayarlamevcut daha fazla veri göstergesi. Ayrıca bakın Kursörler .

Evren ID

Evren ID ı, veri depolarına erişmek istediğiniz deneyimin benzersiz kimliğidir. Bir deneyimin Evren ID'sinin değeri, deneyimin başlangıç yerinin DataModel.GameId ıdır, tüm deneyimin değil.

Aşağıdaki adımları kullanarak bir deneyimin Evren ID'sini elde edebilirsiniz:

  1. Navigate to the Yaratıcı Dashboard .

  2. Erişmek istediğiniz veri depolarıyla deneyin.

  3. Hedef deneyiminin minyatüründeki butonuna tıklayarak bir liste göster, sonra Kaynak Kodu Kopyala seç.

    Copy Universe ID option from Creator Dashboard

Alanlar

Veri depolarınızı düzenlemek için, giriş için bir alt klasör belirtmek için benzersiz bir yuva ayarlayarak. Bir yuva ayarladıktan sonra, tüm operasyonlarda veri mağazaotomatik olarak eklenir. Yuva ayarları standart veri depoları için global olarak görünür, ancak siparişli veri depoları için gerekli olur.

Kapsayıcı, verilerinizi bir diz ve "/" ile ayrıcı bir boşluk ile kategorize eder, örneğin:

AnahtarMira
evler/User_1evler
evcil hayvanlar/User_1evcil hayvanlar
inventory/Kullanıcı_1envanter

Tüm veri depolama giriş işlemlerinin Scope parametreleri, girişleri 非デフォル

Ayrıca, bir veri depolarındaki tüm anahtarları listelemek istiyorsanız,

Aynı talepScope ve AllScopes parametrelerini geçemezsiniz, aksi takdirde çağrı bir hata döndürür. Veri depoları modülündeki yardımcı işlevlerden yararlanmak için, aşağıdaki kodu gösteren Open Cloud API'lerindeki yardımcı işlevleri nasıl okuyabilirsiniz:

Farklı alanlar için anahtarları listele

# Yükleme
import tutorialFunctions
DatastoresApi = tutorialFunctions.DataStores()
datastoreName = "PlayerInventory"
# Küresel alan için anahtarları listele
specialScopeKeys = DatastoresApi.list_entries(datastoreName, scope = "global", allScopes = False)
print(keys.content)
# Özel alan için anahtarları listele
specialScopeKeys = DatastoresApi.list_entries(datastoreName, scope = "special", allScopes = False)
print(keys.content)
# Liste anahtarları tüm Kapsayıcı seti için doğru olarak ayarlanır
specialScopeKeys = DatastoresApi.list_entries(datastoreName, allScopes = True)
print(specialScopeKeys.content)

Eşdeğer menzili olan anahtarlar yanıtta döndürülür:

Farklı alanlar için Örnek Yanıtlar

// Küresel alan için yanıt
{ "keys": [{ "scope": "global", "key": "User_2" }], "nextPageCursor": "" }
// Özel alan için yanıt
{"keys":[{"scope":"special","key":"User_6"},{"scope":"special","key":"User_7"}],"nextPageCursor":""}
// Tüm Scopter'lar için Yanıt
{"keys":[{"scope":"global","key":"User_3"},{"scope":"global","key":"User_4"},{"scope":"global","key":"User_5"},{"scope":"special","key":"User_6"},{"scope":"special","key":"User_7"}],"nextPageCursor":""}

İçerik-MD5

Content-MD5, içerikteki MD5 kodlanmış şifre checksum'udur. Bu, veri bütütlüğünü kontrol eden ve potansiyel sorunları tespit eden Giriş Ayısı bağlantısı için bir zorunlu istek başlığıdır.

Seçtiğiniz dil kullanarak content-md5 başlığının değerini hesaplayabilirsiniz. Aşağıdaki örnek, Python'ı kullanır. hashlib.md5() ve base64.b64Encode() işlevleri, Python standart kütüphanelerinde mevcuttur (2.7, 3+).

İçerik MD5 Oluşturuluyor

# İşaretlerle
$ python -c "import base64, hashlib; print('content-md5: ' + str(base64.b64encode(hashlib.md5(bytes(input('content: '), encoding='utf8')).digest()), encoding='utf8'))"
content: 750
content-md5: sTf90fedVsft8zZf6nUg8g==
# Sadece stdin ve stdout'u kullanmak
$ 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 oluşturmak için sorunlar yaşarsanız, kontrol sayısını hesaplamadan önce isteğinizin UTF-8 kodunu kullanmanız gerekebilir.

Kursörler

Veri listelerini iade eden son noktalar ayrıca bir nextPageCursor dizidöndürebilir. Bu, istenen sonuç ayarladaha fazla veri olmasını gösterir. Almak için, bir sonraki talepiçindeki cursor kaynağını sağlayın. Eğer kaynak sağlanırsa, kaynağın geçersiz olduğunu gösteren

Kurulmuş kurdeşlerin biçimi belirlenmedi . Onlar herhangi bir anda değişebileceğinden, onları yorumlamak veya parçalamak yanlış olur.

Filtreler

Siparişleri List``filter yöntemine gönderirken, değerleri belirli bir aralıkta içeren girişleri için gerekli bir filter gösterge ekleyebilirsiniz.

filtre parametresi, bir mantık operatörü && ve iki karşılaştırma operatörü <= destekler. Maksimum değeri ayarlamak için 1><&%ri_tab%&> &%ri_tab%&> &%ri_tab%&> &%ri_tab%&> &%ri_tab%&> &%ri_tab%&

Örneğin, değerleri 10'dan daha küçük veya eşit olarak 10'a döndürmek için, entry <= 10 değerini filter değerine girmelisiniz. Değerleri 10'dan 50'ye döndürmek için, entry <= 50 && entry >= 10 değerini 2> filter2> değerine girmelisiniz.

Aşağıdaki örnekler, isteklerinizi yerine getiremeyebilecek filter değerleridir:

  • entry <= 10 - sırayışın her bir parçası arasında boşluk yok.
  • 10 <= entry - entry ve karşılaştırma değeri yanlıştır.
  • entry <= 10 && entry <= 50 - && sadece min veya max değerleri için iki karşılaştırma operatörü için bir menzili belirtir.

Kayıp Bayrakları İzin Ver

Mevcut bir veri depolarını güncellemeye istek göndermek için Update > metoduna bir seçeneğin allow_missing bayrağını ekleyebilirsiniz, böylece girişin mevcut olmasına rağmen yaratmayı izin verebilirsiniz.

allow_missing bayrağını True olarak ayarladığınızda:

  • Giriş mevcut değilse, yanıt yeni bir giriş döndürür.

  • Giriş mevcutsa, ancak içerik mevcut değerin aksine uyarsa, mevcut giriş değiştirilmez kalır.

  • Giriş mevcutsa ve içerik mevcut değerin aksine uymuyorsa, yanıt girişi güncellenmiş yeni içerik değeriyle gösterir.