다음을 통해 공유


POST(/users/xuid(xuid)/lists/PINS/{listname})

쿼리 문자열 매개 변수 insertIndex를 기반으로 인덱스의 목록에 항목을 삽입합니다. 이 URI의 도메인은 eplists.xboxlive.com입니다.

설명

이 호출은 쿼리 문자열 매개 변수 insertIndex(기본값은 0 또는 목록의 시작 부분)에 따라 인덱스의 목록에 항목을 삽입합니다. 요청 본문의 모든 항목이 목록의 해당 지점에 삽입됩니다. insertIndex가 기존 목록의 항목 수보다 크면 새 항목이 끝에 삽입됩니다.

삽입될 항목은 기능 사양에 표시된 필수 필드를 가져야 하며, 그렇지 않으면 HTTP 400이 반환됩니다. 마찬가지로 삽입 결과가 목록의 최대 크기(목록 유형별로 정의됨)를 초과하면 HTTP 400이 반환되고 아무 것도 삽입되지 않습니다.

항목이 목록의 처음 또는 끝에 삽입되지 않는 경우 If-Match:versionNumber 헤더가 요청에 포함되어야 합니다. 시작 또는 끝에 삽입되는 경우 헤더는 선택 사항입니다. 헤더가 있는 경우 삽입 위치에 관계없이 유효성이 검사됩니다. 헤더에서 VersionNumber는 목록의 현재 버전 번호입니다. 포함되지 않고 필수가 아니거나 현재 목록 버전 번호와 일치하지 않으면 HTTP 412(precondition failed) 상태 코드가 반환되며 응답 본문에는 현재 버전 번호가 포함된 목록의 최신 메타데이터가 포함됩니다. 이는 서로 다른 클라이언트의 업데이트가 충돌하는 것을 방지하기 위한 목적입니다.

이 호출은 idempotent가 아닙니다. 동일한 데이터를 반복 호출하면 여러 번 삽입될 수 있습니다. 하지만 현재 중복을 지원하는 목록이 없기 때문에 반복되는 호출로 인해 HTTP 400 코드가 반환될 수 있습니다.

URI 매개 변수

매개 변수 형식 설명
xuid 문자열 Xbox 사용자 ID(XUID).
listtype 문자열 목록 유형(사용 방법 및 작동 방법). 이러한 관련 메서드의 경우 항상 "PINS"입니다.
listname 문자열 목록 이름(작동하도록 지정된 listtype 목록). 고정 항목의 경우 항상 "XBLPins"입니다.

쿼리 문자열 매개 변수

매개 변수 형식 설명
insertIndex 문자열 선택 사항. 항목을 삽입할 위치를 정의합니다. 지원되는 값: 0, 양수 및 "end". 목록 항목 수보다 큰 모든 인덱스 값은 목록의 맨 아래에 새 항목을 추가하고 목록에 "빈" 공간을 삽입하지 않습니다. 기본값: 0.

Authorization

이 호출에서는 Authorization 헤더의 XSTS SAML 토큰이 예상됩니다. 호출자를 식별하려면 해당 SAML 토큰 내에 Xuid 클레임이 있어야 합니다. 이 값은 호출자에게 해당 목록 데이터에 대한 액세스 권한이 있는지 여부를 확인하는 데 사용됩니다. 목록 자체는 Xuid에서도 식별되며 목록의 URI에 포함됩니다. 이를 사용하여 앞으로 목록에 대한 공유 액세스를 지원할 수 있지만 현재로서는 기능이 지원되지 않습니다. 현재 사용자가 액세스하는 모든 목록은 자체적인 목록이며 공유 액세스 권한이 없습니다. 따라서 URI의 Xuid는 SAML 클레임 토큰의 Xuid와 일치해야 합니다.

참고:
현재 XBL Auth 2.0 및 3.0 토큰이 모두 지원됩니다.

HTTP 상태 코드

서비스는 이 리소스에서 이 메서드를 통해 수행한 요청에 대한 응답으로 이 섹션의 상태 코드 중 하나를 반환합니다. Xbox Live 서비스에서 사용되는 표준 HTTP 상태 코드의 전체 목록은 표준 HTTP 상태 코드를 참조하세요.

코드 이유 구문 설명
200 OK 요청이 완료되었습니다. 응답 본문에는 요청된 리소스가 포함되어야 합니다(GET의 경우). POST 및 PUT 요청에는 최신 목록 메타데이터(목록 버전, 개수 등)가 수신됩니다.
201 Created 새 목록이 생성되었습니다. 초기 삽입 시 목록으로 반환됩니다. 응답에는 목록의 최신 메타데이터가 포함되며 위치 헤더에는 목록의 URI가 포함됩니다.
304 Not Modified GET에 대해 반환합니다. 클라이언트에 최신 버전의 목록이 있음을 나타냅니다. 서비스는 If-Match 헤더의 값을 목록 버전과 비교합니다. 동일한 경우 304가 데이터 없이 반환됩니다.
400 Bad Request 요청이 잘못되었습니다. URI 또는 쿼리 문자열 매개 변수에 잘못된 값이나 유형일 수 있습니다. 필수 매개 변수 또는 데이터 값이 누락되었거나 요청에 API 누락 또는 유효하지 않은 버전이 표시될 수 있습니다. X-XBL-Contract-Version 헤더를 참조하세요.
401 Unauthorized 요청에 대해 사용자 인증이 필요합니다.
403 Forbidden 사용자 또는 서비스에 대해 요청이 허용되지 않습니다.
404 Not Found 호출자가 리소스에 액세스할 수 없습니다. 해당 목록이 생성되지 않았음을 나타냅니다.
412 Precondition Failed 목록 버전이 변경되었고 수정 요청이 실패했음을 나타냅니다. 수정 요청은 삽입, 업데이트 또는 제거입니다. 서비스는 목록 버전에 대해 If-Match 헤더를 확인합니다. 목록의 현재 버전과 일치하지 않으면 작업이 실패하고 현재 목록 메타데이터(현재 버전 포함)와 함께 반환됩니다.
500 Internal Server Error 서비스가 서버 측 오류로 인해 요청을 거부합니다.
501 Not Implemented 호출자가 서버에 구현되지 않은 URI를 요청했습니다. (현재 허용된 목록에 없는 목록 이름에 대한 요청이 있을 때만 사용됨)
503 Service Unavailable 일반적으로 과부하로 인해 서버가 요청을 거부합니다. 지연 후(Retry-after 헤더 참조) 요청을 다시 시도할 수 있습니다.

필수 요청 헤더

헤더 설명
Authorization 요청을 인증하고 권한을 부여하는 데 사용되는 STS 토큰이 포함되어 있습니다. XSTS 서비스의 토큰이어야 하며 XUID를 클레임의 하나로 포함해야 합니다.
X-XBL-Contract-Version 요청된 API 버전을 지정합니다(양수). 고정 항목은 버전 2를 지원합니다. 이 헤더가 누락되었거나 값이 지원되지 않으면 서비스는 상태 설명에 "지원되지 않거나 계약 버전 헤더가 없습니다"라는 400 - Bad Request를 반환합니다.
콘텐츠-종류 요청/응답 본문의 내용이 json인지 xml인지 지정합니다. 지원되는 값은 "application/json" 및 "application/xml"입니다.
If-Match 이 헤더에는 수정 요청을 할 때 목록의 현재 버전 번호가 포함되어야 합니다. 수정 요청은 PUT, POST 또는 DELETE 동사를 사용합니다. "If-Match" 헤더의 버전이 현재 버전의 목록과 일치하지 않으면 HTTP 412 - Precondition Failed 반환 코드로 요청이 거부됩니다. (선택 사항) GET에 사용할 수 있으며, 전달된 버전이 현재 목록 버전과 일치하면 목록 데이터가 없으며 HTTP 304 - Not Modified 코드가 반환됩니다.

샘플 요청

ContentType, ItemId 또는 ProviderId, ProviderLocale은 필수입니다.

{"Items":
  [{
    "ContentType": "Movie",
    "ItemId": "3a5095a5-eac3-4215-944d-27bc051faa47",
    "ProviderId": "",
    "Provider": "",
    "ImageUrl": "http://www.bing.com/thumb/get?bid=Gw%2fsjCGSS4kAAQ584x800&bn=SANGAM&fbid=7wIR63+Clmj+0A&fbn=CC", 
    "AltImageUrl": null, 
    "Title": "The Dark Knight", 
    "SubTitle": null, 
    "Locale": "en-us",
    "DeviceType": "XboxOne"
  }]}
      

응답 본문

샘플 응답

{
  "ListVersion":  1,
  "ListCount":  1,
  "MaxListSize": 200,
  "AllowDuplicates": "true",
  "AccessSetting":  "OwnerOnly"
} 
         

참고 항목

부모

/users/xuid(xuid)/lists/PINS/{listname}