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öntem | Sınırlamalar |
---|---|---|
Yazıyı |
Girişi Ayarla |
|
Oku | Liste Verileri Depolama Listeleri Girişleri Listeleme Girişi Al 1> Giriş Versiyonlarını Listele1> 4> Giriş Versiyonunu Al 4> |
|
Sıralama Deposu Sınırlarını Zorlayan
İstek Türü | Yöntem | Sınırlamalar |
---|---|---|
Yazıyı |
1> Sil1> |
|
Oku | Listeyi Listeleyin Alın ] |
|
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ür | Notlar |
---|---|---|
universeId | sayı |
|
datastoreName | yapı |
Uzunluk 50바이트 veya daha az olmalıdır. |
scope | yapı |
Bir veri mağazaalanı. Aşağıdaki gibi görün: Görünümler. |
entryKey | yapı |
Uzunluk 50바이트 veya daha az olmalıdır. |
content-md5 | yapı |
|
roblox-entry-attributes | yapı |
|
roblox-entry-userids | Yapı |
|
cursor | yapı |
|
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:
Navigate to the Yaratıcı Dashboard .
Erişmek istediğiniz veri depolarıyla deneyin.
Hedef deneyiminin minyatüründeki ⋯ butonuna tıklayarak bir liste göster, sonra Kaynak Kodu Kopyala seç.
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:
Anahtar | Mira |
---|---|
evler/User_1 | evler |
evcil hayvanlar/User_1 | evcil hayvanlar |
inventory/Kullanıcı_1 | envanter |
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üklemeimport tutorialFunctionsDatastoresApi = tutorialFunctions.DataStores()datastoreName = "PlayerInventory"# Küresel alan için anahtarları listelespecialScopeKeys = DatastoresApi.list_entries(datastoreName, scope = "global", allScopes = False)print(keys.content)# Özel alan için anahtarları listelespecialScopeKeys = DatastoresApi.list_entries(datastoreName, scope = "special", allScopes = False)print(keys.content)# Liste anahtarları tüm Kapsayıcı seti için doğru olarak ayarlanırspecialScopeKeys = 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: 750content-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.