데이터 저장소에 대한 API 요청 처리

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

일반적인 데이터 저장소 및 순차적 데이터 저장소에 대한 요청을 보내기 전에 이해해야 하는 방법을 알아야 합니다. 대한 API 사용에 대한 정보는 사용 가이드를 참조하십시오.

권한 부여

모든 개방형 클라우드 API와 마찬가지로 데이터 저장소 요청에는 모든 요청에 대한 x-api-key 헤더를 유효하지 않은상점필요한 권한을 포함하는 API 키가 포함되어 있습니다. 이 경우 키를 경험에 적용하

스로틀링

모든 엔드포인트에는 두 가지 유니버스 수준 제한이 있습니다: 요청 당 분 제한 및 통합 데이터 제한. 모든 경험에서 요청 당 분 제한 을 사용하면 분당 요청 수를 보내고, 2>통합 데

Lua API와는 달리 이러한 제한은 현재 사용자 수에 따라 크기를 조정하지 않습니다. 이 제한을 초과하면 엔드포인트가 429 Too Many Requests를 반환합니다.

일반적인 데이터 저장소 부하 제한

요청 유형메서드스로틀 제한
쓰기

    설정 입력 설정 입력 증가 입력 증가 입력 증가 입력 증가 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니다 입니

    10 MB/min/universe write throughput

  • 300 requs/min/universe
읽기

    목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터 저장소 목록 데이터

  • 20 MB/min/universe 쓰기 속도
  • 300 requs/min/universe

주문된 데이터 저장소 제한

요청 유형메서드스로틀 제한
쓰기
  • 생성
  • 증가량
  • 업데이트
  • 1> 삭제 1> >

  • 300개/분/우주
읽기

    목록을 만들기 위해 받기 위해 목록을 만듭니다.

  • 300개/분/우주

입력 유효성 검사

요청을 보내기 전에 다음 표에 따라 엔드포인트 매개 변수를 유효하게 확인하십시오. 개별 엔드포인트는 이 제한을 초과하는 추가 요구 사항을 가질 수 있습니다. 매개 변수가 다음 제한을 충족하지 못하면 엔드포인트는 잘못된 요청을 반환합니다0>.

입력유형노트
universeId숫자
datastoreName문자열
  • 길이는 50바이트 이하여야 합니다.
  • 0이 아님이나 비어 있지 않습니다.
scope문자열

  • 데이터 상점범위입니다. 보세요 범위 .
  • 길이는 50바이트 이하여야 합니다.
  • .

entryKey문자열
  • 길이는 50바이트 이하여야 합니다.
  • 0이 아님이나 비어 있지 않습니다.
content-md5문자열

  • 기본 64 인코딩된 MD5 체크썸의 크기 콘텐츠. 참조 콘텐츠-MD5 .
  • >

roblox-entry-attributes문자열
  • JSON 개체로 인코딩됩니다.
  • 길이가 300바이트 이하여야 합니다.
roblox-entry-userids문자열
  • 0-4 숫자의 JSON 배열로 인코딩됩니다.
  • 최대 4개의 사용자 ID입니다.
cursor문자열

    더 많은 데이터를 요청한 결과 설정있음을 나타내는 표시자입니다. 보기 위에서 커서를 참조하십시오.

    .

유니버스 ID

Class.DataModel.GameId 는 데이터 저장소에 액세스하려는 경험의 고유 식별자입니다. DataModel.GameId 의 값은 경험의 Class.DataModel.GameId 이며, 1>StartingPlaceId1> 는 전체 경험이 아닌 시작 장소를 식별합니다

다음 단계를 사용하여 경험의 유니버스 ID 를 얻을 수 있습니다.

  1. 크리에이터 대시보드로 moves.

  2. 액세스할 데이터 저장소 경험을 찾습니다.Find the experience with data stores that you want to access.

  3. 대상 경험 썸네일에서 ⋯ 버튼을 클릭하여 옵션 목록을 표시한 다음 유니버스 ID 복사를 선택합니다.

    Copy Universe ID option from Creator Dashboard

범위

특정 문자열을 사용자 지정 범위로 설정하여 하위 폴더를 지정하면 데이터 저장소를 조직할 수 있습니다. 범위를 설정하면 데이터 상점수행되는 모든 작업에 자동으로 추가됩니다. 범위는 기본적으로 데이터 저장소에 대한 모든 작업에 대해 global입니다. 하

범위는 "/"와 함께 사용하는 문자열과 구분 기호를 사용하여 데이터를 범주화합니다. 예를 들어:

범위
사용자/User_1하우스
반려동물/User_1애완 동물
인벤토리/User_1인벤토리

모든 데이터 저장소 입력 메서드에는 Scope에 액세스해야 할 때

또한, 하나 이상의 비기본 범위가 있는 데이터 스토어에 키가 저장

Open Cloud API에서 데이터 저장소 모듈에 대해 ScopeAllScopes 매개 변수를 동일한 요청에 전달하면 호출이 오류를 반환합니다. 데이터 저장소 모듈에 대해 도움말 함수를 사용하여 사용자 정의 범위를 사용하여 모든 키를 읽을 수 있습니다.

다양한 범위에 대한 키 목록

# 설정
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":""}
// 모든 스코프에 대한 응답
{"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는 콘텐츠의 기본 64비트 인코딩된 MD5 체크썸입니다. Set Entry 엔터티에서 데이터 무결성을 검사하고 잠재적 문제를 감지하는 옵션 요청 헤더입니다.

선호하는 언어를 사용하여 content-md5 헤더의 값을 계산할 수 있습니다. 다음 예에서는 Python을 사용합니다. hashlib.md5()base64.b64Encode() 함수는 피톤치 라이브러리(2.7, 3+)에서 사용할 수 있습니다.

콘텐츠 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 및 cmd에서 사용
$ 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 이진으로 인코딩해야 할 수 있습니다.

커서

데이터 목록을 반환하는 엔드포인트는 또한 cursor 문자열을 반환할 수 있습니다. 이는 요청된 결과 설정더 많은 데이터가 있음을 나타냅니다. 받으려면 다음 쿼리 매개 변수에 400 Bad Request 문자열을 제공하십시오. 커서 매개

커서 문자열의 형식은 정의되지 않음 입니다. 이 문자열은 언제든지 변경될 수 있으므로 해석하거나 분석하지 마십시오.

필터

주문된 데이터 저장소에 대한 요청을 보낼 때 List 메서드에 옵션 필터 쿼리 매개 변수를 추가하여 지정된 범위의 입력을 반환할 수 있습니다.

필터 매개 변수는 하나의 논리 연산자, && , 두 가지 비교 연산자, <= 를 지원하며, 최대 값을 설정하는 경우 1>>=1> 와 최소 값을 설정하는 경우 4>&&4> 를 추가합니다. 범위

예를 들어, 값이 10보다 작거나 같은 값을 가진 항목을 반환하려면 entry <= 10 를 필터로 입력해야 합니다. 값이 10과 50 사이인 항목을 반환하려면 filter 를 입력하세요.

다음 예시는 요청을 실패시킬 수 있는 filter 값입니다.

  • entry <= 10 - 시퀀스의 각 부분 사이에 공백이 없습니다.
  • 10 <= entry - entry 및 비교 값이 잘못된 쪽에 있습니다.
  • entry <= 10 && entry <= 50 - && 은 최소 및 최대 값에 대한 두 가지 비교 연산자를 사용하여 범위를 지정할 수 있습니다.

누락된 플래그 허용

기존 주문된 데이터 저장소 항목을 업데이트하려면 Update 메서드에 옵션 allow_missing 플래그를 추가하여 항목이 없더라도 생성을 허용할 수 있습니다.

allow_missing 플래그를 True로 설정할 때:

  • 항목이 없으면 응답은 새로운 항목을 반환합니다.

  • 입력이 존재하지만 콘텐츠가 해당 입력의 기존 값과 일치하면 해당 입력은 변경되지 않습니다.If the entry exists but the content matches the existing value of the entry, the existing entry remains unchanged.

  • 입력이 있고 콘텐츠가 해당 입력의 기존 값과 일치하지 않으면 응답은 업데이트된 새 콘텐츠 값을 가진 입력을 반환합니다.