POST (/batch)
여러 타이틀에 걸친 여러 가지 플레이어 통계에 대한 복잡한 일괄 처리 요청을 위한 GET 메서드로 작동하는 POST 메서드입니다.
이 URI의 도메인은 userstats.xboxlive.com
입니다.
비고
타이틀 개발자는 파트너 센터에서 통계를 공개 또는 제한으로 표시할 수 있습니다. 순위표는 공개된 통계입니다. 사용자가 샌드박스에 대한 권한이 있는 한 공개된 통계는 Smartglass뿐만 아니라 iOS, Android, Windows, Windows Phone 및 웹 애플리케이션을 통해 액세스할 수 있습니다. 샌드박스에 대한 사용자 권한 부여는 파트너 센터를 통해 관리됩니다.
설명
호출자는 사용자들의 배열, 서비스 구성 ID(SCID), 그리고 그 통계를 검색할 SCID당 통계 이름들의 목록으로 구성된 메시지 본문을 제공합니다.
이 복잡한 일괄 처리 모드 페이지를 읽기 전에 통계 하나로 이루어진 간단한 GET 메서드를 검토하는 것이 더 효율적일 것입니다.
Authorization
콘텐츠 격리 및 액세스 제어 시나리오에 대해 구현된 권한 부여 논리가 있습니다.
- 호출자가 요청과 함께 유효한 XSTS 토큰을 제출하는 경우 모든 플랫폼의 클라이언트에서 순위표와 사용자 통계를 모두 읽을 수 있습니다. 쓰기는 에서 지원하는 클라이언트로 제한됩니다.
- 타이틀 개발자는 파트너 센터에서 통계를 공개 또는 제한으로 표시할 수 있습니다. 순위표는 공개된 통계입니다. 사용자가 샌드박스에 대한 권한이 있는 한 공개된 통계는 Smartglass뿐만 아니라 iOS, Android, Windows, Windows Phone 및 웹 애플리케이션을 통해 액세스할 수 있습니다. 샌드박스에 대한 사용자 권한 부여는 파트너 센터를 통해 관리됩니다.
다음 예시는 검토를 위한 의사 코드입니다.
If (!checkAccess(serviceConfigId, resource, CLAIM[userid, deviceid, titleid]))
{
Reject request as Unauthorized
}
// else accept request.
필수 요청 헤더
헤더 | 유형 | 설명 |
---|---|---|
Authorization | 문자열 | HTTP 인증을 위한 인증 자격 증명입니다. 예제 값: "XBL3.0 x=<userhash>;<token>". |
선택적 요청 헤더
헤더 | 유형 | 설명 |
---|---|---|
X-RequestedServiceVersion | 이 요청을 연결해야 하는 서비스의 이름/번호를 작성합니다. 헤더의 유효성과 인증 토큰의 클레임 등을 확인한 이후에만 요청이 해당 서비스로 라우팅됩니다. 기본값: 1. |
요청 본문
샘플 요청
다음 POST 본문은 사용자 2명의 SCID에서 4개의 통계가 요청되고 있음을 서비스에 알려줍니다.
{
"requestedusers": [
1234567890123460,
1234567890123234
],
"requestedscids": [
{
"scid": "c402ff50-3e76-11e2-a25f-0800200c1212",
"requestedstats": [
"Test4FirefightKills",
"Test4FirefightHeadshots"
]
},
{
"scid": "c402ff50-3e76-11e2-a25f-0800200c0343",
"requestedstats": [
"OverallTestKills",
"TestHeadshots"
]
}
]
}
HTTP 상태 코드
서비스는 이 리소스에서 이 메서드를 통해 수행한 요청에 대한 응답으로 이 섹션의 상태 코드 중 하나를 반환합니다. Xbox Live 서비스에서 사용되는 표준 HTTP 상태 코드의 전체 목록은 표준 HTTP 상태 코드를 참조하세요.
코드 | 이유 구문 | 설명 |
---|---|---|
200 | OK | 세션이 성공적으로 검색되었습니다. |
304 | Not Modified | 마지막으로 요청한 이후로 리소스가 수정되지 않았습니다. |
400 | Bad Request | 서비스가 형식이 잘못된 요청을 이해할 수 없습니다. 일반적으로 잘못된 매개 변수입니다. |
401 | Unauthorized | 요청에 대해 사용자 인증이 필요합니다. |
403 | Forbidden | 사용자 또는 서비스에 대해 요청이 허용되지 않습니다. |
404 | Not Found | 지정된 리소스를 찾을 수 없습니다. |
406 | Not Acceptable | 리소스 버전이 지원되지 않습니다. |
408 | Request Timeout | 리소스 버전은 지원되지 않습니다. MVC 계층에서 거부되어야 합니다. |
응답 본문
샘플 응답
{
"users":[
{
"xuid": "123456789"
"gamertag": "WarriorSaint",
"scids":[
{
"scid":"c402ff50-3e76-11e2-a25f-0800200c1212",
"stats": [
{
"statname":"Test4FirefightKills",
"type":"Integer",
"value":7
},
{
"statname":"Test4FirefightHeadshots",
"type":"Integer",
"value":4
}]
},
{
"scid":"c402ff50-3e76-11e2-a25f-0800200c0343",
"stats": [
{
"statname":"OverallTestKills",
"type":"Integer",
"value":3434
},
{
"statname":"TestHeadshots",
"type":"Integer",
"value":41
}]
}],
},
{
"gamertag":"TigerShark",
"xuid":1234567890123234
"scids":[
{
"scid":"123456789",
"stats": [
{
"statname":"Test4FirefightKills",
"type":"Integer",
"value":63
},
{
"statname":"Test4FirefightHeadshots",
"type":"Integer",
"value":12
}]
},
{
"scid":"987654321",
"stats": [
{
"statname":"OverallTestKills",
"type":"Integer",
"value":375
},
{
"statname":"TestHeadshots",
"type":"Integer",
"value":34
}]
}],
}]
}