การจัดการคำขอ API สำหรับ Data Stores

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ก่อนส่งคำขอเพื่อเปิด Cloud APIs สำหรับ คลังข้อมูลมาตรฐาน และ คลังข้อมูลที่สั่งซื้อ คุณต้องเข้าใจวิธีการจัดการพวกเขาอย่างเหมาะสม สำหรับข้อมูลเกี่ยวกับการใช้งาน API โปรดด

การรับอนุญาต

เหมือนกับ Open Cloud API อื่น ๆ ตรวจสอบจุดสิ้นสุดของข้อมูลต้องรวมทุกคำขอที่มี x-api-key หัวข้อ ซึ่งรวมรหัส API ที่มีสิทธิ์สำหรับ

คันเร่ง

ทุกจุดสิ้นสุดมีสองประเภทของระดับจักรวาลที่ปิดกั้น: การร้องขอต่อนาที และ การประมวลผล การปิดกั้นทุกประเภทช่วยให

ในขณะที่ Lua API ไม่มีข้อจํากัดเหล่านี้ใช้เวลาในการเคลื่อนไหวของผู้ใช้ การเกินขีดจํากัดเหล่านี้ทําให้เวลาในการเคลื่อนไหวของเราเป็น 429 Too Many Requests

ข้อจํากัดการดัดผมข้อมูลสําหรับคลังข้อมูล

ประเภทคำขอวิธีข้อจํากัดความเร็ว
เขียน

  • ตั้งค่าการเข้าถึง
  • เพิ่มการเข้าถึง
  • ลบการเข้าถึง
  • >

  • 10 MB/min/universe เขียนผ่านปริมาณการเขียน
  • 300 requs/min/universe
อ่าน

    รายการโครงสร้างข้อมูล รายการเข้า รับเข้า 1> รายการเข้าสู่รุ่น1>

    4> รับเวอร์ชันเข้า

    4>

  • 20 MB/min/universe เขียนผ่านปริมาณการเขียน
  • 300 requs/min/universe

จำกัดความเร็วการส่งข้อมูล

ประเภทคำขอวิธีข้อจํากัดความเร็ว
เขียน
  • สร้าง
  • เพิ่ม
  • อัปเดต
  • 1> ลบ1> >

  • 300 ต่อนาที/จักรวาล
อ่าน
  • รายการ
  • รับ
  • 300 ต่อนาที/จักรวาล

การตรวจสอบข้อมูล

ก่อนส่งคำขอของคุณ ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบค่านิยมของตัวแปรในข้อกำหนดและข้อจํากัดของฟอร์มตามที่ระบุไว้ในตารางต่อไปนี้ หากค่านิยมไม่ตรงตามข้อกำหนดเหล่านี้ ตัวแปร

ใส่ชนิดโน้ต
universeIdจํานวน
datastoreNameสตริง
  • ความยาวต้องเป็น 50 บาทหรือน้อยกว่านั้น
scopeสตริง

  • ร้านค้าดู ขอบเขต .
  • ความยาวต้องเป็นไปตาม 50 บาทหรือน้อยกว่านั้น
  • .

entryKeyสตริง
  • ความยาวต้องเป็น 50 บาทหรือน้อยกว่านั้น
content-md5สตริง
roblox-entry-attributesสตริง
  • เรียงด้วยตัวแทน JSON .
  • ความยาวต้องเล็กกว่า 300 บาท.
roblox-entry-useridsสตริง

  • เรียงด้วยแมทริคของ JSON ของ 0-4 ตัวเลข.
  • ไม่เกิน 4 รหัสผู้ใช้
  • .

cursorสตริง

รหัสจักรวาล

รหัสจักรวาล เป็นรหัสไม่ซ้ำของประสบการณ์ที่คุณต้องการเข้าถึง รหัสจักรวาลของประสบการณ์มีค่าคือ DataModel.GameId และ ไม่ เหมือ

คุณสามารถรับ รหัสจักรวาล ของประสบการณ์ด้วยวิธีต่อไปนี้:

  1. ค้นหาประสบการณ์ที่มีข้อมูลที่คุณต้องการเข้าถึง
  2. คลิกปุ่ม บนรูปย่อประสบการณ์เป้าหมายเพื่อแสดงรายการตัวเลือกแล้วเลือก คัดลอกรหัสจักรวาล Copy Universe ID option from Creator Dashboard

สก็อป

คุณสามารถจัดเก็บข้อมูลของคุณโดยการตั้งสตริงที่ไม่ซ้ำกันเป็นสเก็บที่ระบุชื่อของลักษณะลูกโฟลเดอร์สำหรับเรื่อง เมื่อคุณตั้งสเก็บที่ไม่ซ้ำกันคุณจะอัปเดตอัตโนม

สเก็ตช์จัดหมวดหมู่ข้อมูลของคุณด้วยสตริงและเครื่องแยกด้วย "/" เช่น:

กุญแจสเก็ต
บ้าน/User_1บ้าน
สัตว์เลี้ยง/ผู้ใช้_1สัตว์เลี้ยง
inventory/ผู้ใช้_1คลังไอเท็ม

วิธีการเก็บรวบรวมข้อมูลทั้งหมดมีวิธีการเข้าถ

นอกจากนี้หากคุณต้องการนับจำนวนกุญแจทั้

คุณไม่สามารถผ่านตัวแปร Scope และ AllScopes ในคำขอเดียวกันได้หากไม่ได้รับการผ่านพารามิเตอร์ด้านล่างนี้ โดยใช้หน้าต่างการช่วยเหลือจาก Open Cloud APIs สำหรับโคลล์

รายการคีย์สำหรับด้านต่างๆ

# ตั้งค่า
import tutorialFunctions
DatastoresApi = tutorialFunctions.DataStores()
datastoreName = "PlayerInventory"
# รายการคีย์สำหรับขอบเขตโลก
specialScopeKeys = DatastoresApi.list_entries(datastoreName, scope = "global", allScopes = False)
print(keys.content)
# รายการคีย์สำหรับสเปคเฉพาะ
specialScopeKeys = DatastoresApi.list_entries(datastoreName, scope = "special", allScopes = False)
print(keys.content)
# รายการคีย์สำหรับทุกโคลัมเซ็ตให้เป็นจริง
specialScopeKeys = DatastoresApi.list_entries(datastoreName, allScopes = True)
print(specialScopeKeys.content)

คีย์ที่มีขอบเขตที่ตรงกันจะถูกส่งในตอบสนอง:

ตอบสนองต่างๆ สำหรับขอบเขตที่แตกต่างกัน

// ตอบสำหรับขอบเขตโลก
{ "keys": [{ "scope": "global", "key": "User_2" }], "nextPageCursor": "" }
// การตอบสนองสำหรับขอบเขตพิเศษ
{"keys":[{"scope":"special","key":"User_6"},{"scope":"special","key":"User_7"}],"nextPageCursor":""}
// การตอบสนองสำหรับ AllScopes
{"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":""}

เนื้อหา MD5

Content-MD5 คือ base-64 encoded MD5 checksum ของเนื้อหา มันเป็นหัวข้อคำขอที่เปิดการใช้งานสำหรับ Set Entry เว็บไซต์ที่ตรวจสอบความสมบูรณ์ของข้อมูลและตรวจพบปัญหาท��在

คุณสามารถใช้ภาษาที่คุณเลือกเพื่อคํานวณมูลค่าของหัวข้อ content-md5 ต่อไปนี้ ตัวอย่างต่อไปใช้ Python ตัวอย่าง hashlib.md5() และ ตัวอย่าง base64.b64Encode() ในไ

การสร้างเนื้อหา MD5

# มีคำแนะนำ
$ 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==
# ใช้เพียง stdin และ stdout
$ echo "750" | python -c "import base64, hashlib; print(str(base64.b64encode(hashlib.md5(bytes(input(), encoding='utf8')).digest()), encoding='utf8'))"
sTf90fedVsft8zZf6nUg8g==

หากคุณพบปัญหาในการสร้างมูลค่า content-md5 ที่ถูกต้อง คุณอาจต้องเข้ารหัสร่างขอของคุณด้วย UTF-8 เบนท์รี่ก่อนที่จะคำนวณสรุป

ลูกศร

เอ็นด์พอยท์ที่กลับรายการข้อมูลอาจกลับสตริง nextPageCursor ด้วย ไม่ถูกต้องเพื่อรับสตริงนี้ให้ตัวอย่าง

รูปแบบของตัวอักษรคือ ไม่ได้ระบุ คุณไม่ควรใช้ตัวอักษรเหล่านี้เพื่อให้คุณคิดว่าหรือประมวลผลพวกเขาเนื่องจากพวกเขาอาจเปลี่ยนแปลงได้ตลอดเวลา

ตัวกรอง

เมื่อส่งคำขอไปยังวิธี List เพื่อเก็บข้อมูลที่สั่งซื้อ คุณสามารถเพิ่มตัวอ้างขอเครื่องกรองได้อpcional เพื่อการนำเสนอผลลัพธ์ที่มีค่าในช่วงที่กำหนด

ตัวประการ filter สนับสนุนผู้ประกอบการโลจิกหนึ่ง, && และผู้ประกอบการเปรียบเทียบสอง, <= สำหรับการตั้งค่ามูลค่าสูงส

เช่นเดียวกับตัวเลือกที่มีค่าน้อยกว่าหรือเท่ากับ 10 คุณต้องใส่ entry <= 10 ในขีดเส้นใต้ เป็นค่า filter ตัว

ตัวอย่างต่อไปนี้ผิด filter ค่าที่สามารถทำให้คำขอของคุณล้มเหลวได้:

  • entry <= 10 - ไม่มีพื้นที่ว่างระหว่างแต่ละส่วนของตัวอักษร
  • 10 <= entry - entry และค่าเปรียบเทียบอยู่ที่ด้านผิด
  • entry <= 10 && entry <= 50 - && สามารถใช้ได้เฉพาะการกำหนดระยะโดยใช้ตัวดำเนินการเปรียบเทียบสองตัวสำหรับค่าน้อยสุดและสูงสุดเท่านั้น

อนุญาตธงที่หายไป

เมื่อส่งคำขอไปยังวิธี Update เพื่อปรับปรุงรายการข้อมูลที่สั่งซื้อไว้แล้วในวิธี allow_missing คุณสามารถเพิ่มธง allow_missing เพื่ออนุญาตให้สร้างรายการโดยไม่ต้องมีรา

เมื่อคุณตั้งธง allow_missing เป็น True :

  • หากรายการไม่มีอยู่ ตอบสนองจะส่งเข้าอีนี่

  • หากรายการมีอยู่และเนื้อหาตรงกับมูลค่าที่กำหนดไว้แล้ว รายการนั้นจะไม่เปลี่ยนแปลง

  • หากรายการมีอยู่และเนื้อหาไม่ตรงกับมูลค่าที่กำหนดไว้ในรายการ การตอบกลับจะส่งรายการด้วยมูลค่าใหม่ที่ปรับปรุง