Trước khi gửi các yêu cầu để mở Cloud APIs cho lưu trữ dữ liệu tiêu chuẩn và lưu trữ dữ liệu đã đặt, bạn cần hiểu cách xử lý chúng một cách hợp lý. Đối với thông tin về sử dụng API, hãy xem Hướng dẫn sử dụng.
Authentification
Giống như tất cả các API Open Cloud, các điểm kết nối lưu trữ dữ liệu yêu cầu tất cả các yêu cầu bao gồm x-api-key header, which contains an API key with enough permissions for the request. This requires you to apply the key to the experience and the data cửa hàng, and the endpoint operation is
Tăng tốc
Tất cả các đầu mối có hai loại hạn chế cấp độ thiết bị: yêu cầu-per-minute throttling và throughput throttling . Với mọi kinh nghiệm, yêu cầu-per-minute throttling cho phép bạn gửi một
Ngược với Lua API, giới hạn này hiện không bị thay đổi dựa trên số lượng người dùng. Vượt quá các giới hạn này khiến cho đầu mối trở lại 429 Too Many Requests .
Giới hạn tốc độ giảm dữ liệu tiêu chuẩn
Yêu cầu loại | Phương pháp | Giới hạn tốc độ |
---|---|---|
Viết |
|
|
Đọc | Lưu trữ dữ liệu danh sách Lưu trữ hồ sơ Nhận hồ sơ 1> Lưu trữ phiên bản hồ sơ1> 4> Nhận bản sao hồ sơ 4> |
|
Đã đặt hạn chế tốc độ của Data Stores
Yêu cầu loại | Phương pháp | Giới hạn tốc độ |
---|---|---|
Viết |
1> Xóa mục tử1> > |
|
Đọc |
|
|
Xác minh dữ liệu
Trước khi gửi yêu cầu của bạn, hãy chắc chắn rằng các tham số cầu nối được xác định trên các yêu cầu hình thức và hạn chế dựa trên bảng sau đây. Các tham số cụ thể có thể có các yêu cầu bổ sung ngoài các yêu cầu này. Nếu một tham số không đáp ứng các
Nhập | Kiểu | Ghi chú |
---|---|---|
universeId | con số |
|
datastoreName | chuỗi |
|
scope | chuỗi |
|
entryKey | chuỗi |
|
content-md5 | chuỗi |
. |
roblox-entry-attributes | chuỗi |
|
roblox-entry-userids | Chuỗi |
|
cursor | chuỗi |
|
ID Universe
ID Universe là một nhận dạng độc nhất của trải nghiệm mà bạn muốn truy cập vào kho dữ liệu của bạn. Giá trị của một nhận dạng Universe là giá trị của nó DataModel.GameId , không phải là giá trị Class.Data
Bạn có thể nhận được ID Thế giới của một trải nghiệm bằng các bước sau đây:
Navigate to the Bảng điều khiển của người dùng Creator .
Tìm trải nghiệm với các cửa hàng dữ liệu bạn muốn truy cập.
Nhấp vào nút ⋯ trên hình ảnh mục tiêu để hiển thị một danh sách lựa chọn, sau đó chọn Nhân bản ID Universe .
Tầm nhìn
Bạn có thể tổ chức các kho dữ liệu của bạn bằng cách cài đặt một chuỗi độc nhất với một phạm vi mà xác định một thư mục cho mục. Sau khi bạn cài đặt một phạm vi, nó sẽ tự động gắn với tất cả các chìa khóa trong tất cả các hoạt
Phạm thể hóa dữ liệu của bạn bằng một chuỗi và một dấu chia câu với "/", ví dụ như:
Chìa khóa | Tầm nhìn |
---|---|
ngôi nhà/User_1 | ngôi nhà |
thú cưng/User_1 | thú cưng |
inventory/Người dùng_1 | kho |
Tất cả các biểu tượng dữ liệu lưu trữ đều có một Scope 参
Ngoài ra, nếu bạn muốn đếm tất cả các chìa khóa đ
Bạn không thể đi qua Scope và AllScopes các tham số trên cùng một yêu cầu, nếu không, gọi sẽ trả lại một lỗi. Tận dụng các chức năng giúp đỡ từ các API Open Cloud cho các kho dữ liệu, mã sau đây minh họa cách bạn có thể đọ
Danh sách các phím cho các kích thước khác nhau
# Tạo dựngimport tutorialFunctionsDatastoresApi = tutorialFunctions.DataStores()datastoreName = "PlayerInventory"# Danh sách các khóa cho phạm vi toàn cầuspecialScopeKeys = DatastoresApi.list_entries(datastoreName, scope = "global", allScopes = False)print(keys.content)# Danh sách các khóa cho phạm vi đặc biệtspecialScopeKeys = DatastoresApi.list_entries(datastoreName, scope = "special", allScopes = False)print(keys.content)# Danh sách các khóa cho tất cả các cấu hình của các mô-đun được đặt trên truespecialScopeKeys = DatastoresApi.list_entries(datastoreName, allScopes = True)print(specialScopeKeys.content)
Các khóa với phạm vi tương ứng được trả trong trả lời:
Các câu trả lời ví dụ cho các kích thước khác nhau
// Phản hồi cho phạm vi toàn cầu
{ "keys": [{ "scope": "global", "key": "User_2" }], "nextPageCursor": "" }
// Phản hồi cho phạm vi đặc biệt
{"keys":[{"scope":"special","key":"User_6"},{"scope":"special","key":"User_7"}],"nextPageCursor":""}
// Phản hồi cho tất cả các kích thước
{"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":""}
Nội dung MD5
Content-MD5 là base-64> encased MD5 checksum của nội dung. Nó là một đầu mối yêu cầu bắt buộc cho điểm cuối Set Entry kiểm tra tính hợp lệ của dữ liệu và phát hiện các vấn đề tiềm năng.
Bạn có thể sử dụng ngôn ngữ bạn chọn để tính giá trị của content-md5 đầu tiêu. Các ví dụ sau đây sử dụng Python. Các hàm hashlib.md5() và base64.b64Encode() có sẵn trong các thư viện ngôn ngữ tiêu chuẩn của Python (2.7,
Tạo nội dung bằng MD5
# Với các hộp thoại$ 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==# Sử dụng chỉ stdin và stdout$ echo "750" | python -c "import base64, hashlib; print(str(base64.b64encode(hashlib.md5(bytes(input(), encoding='utf8')).digest()), encoding='utf8'))"sTf90fedVsft8zZf6nUg8g==
Nếu bạn gặp phải vấn đề tạo một giá trị content-md5 hợp lệ, bạn có thể cần phải mã hóa cơ thể yêu cầu của mình trong UTF-8 trong máy chủ trước khi tính toán checksum.
Các chuột
Các điểm cuối cũng có thể trả lại một nextPageCursor chuỗi. Điều này cho thấy rằng có nhiều dữ liệu hơn có sẵn trong kết quả yêu cài đặtđược yêu cầu. Để nhận nó, cung cấp chuỗi này trong cursor tham
Định dạng chuỗi cursor là không được xác định . Bạn không nên hiểu hoặc phân tích chúng vì chúng có thể thay đổi bất cứ lúc nào.
Bộ lọc
Khi gửi các yêu cầu đến phương thức List > cho các kho dữ liệu đã được đặt hàng, bạn có thể thêm một điều kiện filter yêu cầu tùy chỉnh để trả lại các hàng với giá trị trong một phạm vi được xác định.
Tham số filter hỗ trợ một trình đơn nhận dạng, && , và hai trình đơn so sánh, <= để cài đặt giá trị tối đa và 1> >=1> để cài đặt giá trị tối thiểu. N
Ví dụ, để đảo lại các hàng với giá trị nhỏ hơn hoặc bằng 10, bạn cần phải nhập entry <= 10 như giá trị filter . Để đảo lại các hàng với giá trị giữa 10 và 50, bạn cần phải nhập entry <= 50 && entry >= 10 .
Các ví dụ sau đây là những giá trị filter sai có thể làm mất yêu cầu của bạn:
- entry <= 10 - không có khoảng trống giữa mỗi phần của chuỗi.
- 10 <= entry - entry và giá trị so sánh ở phía sai.
- entry <= 10 && entry <= 50 - &&> chỉ có thể được sử dụng để xác định một phạm vi với hai người số lượng so sánh cho giá trị tối thiểu và tối đa.
Cho phép thiếu các cờ
Khi gửi các yêu cầu đến phương thức Update để cập nhật một điều khoản dữ liệu đã được đặt hàng, bạn có thể thêm một lá thẻ bắt buộc allow_missing để cho phép sự tạo thành một điều khoản ngay cả khi điều khoản đó kh
Khi bạn đặt cờ allow_missing để True :
Nếu mục này không tồn tại, câu trả lời sẽ trả lại một mục mới.
Nếu mục tồn tại nhưng nội dung trùng với giá trị hiện tại của mục, mục tồn tại hiện tại sẽ không thay đổi.
Nếu mục nhập tồn tại và nội dung không khớp nối với giá trị nội dung hiện tại của mục nhập, kết quả sẽ trả lại mục nhập với giá trị nội dung đã cập nhật.