구현: 부분 응답

다음 예는 YouTube Data API (v3)에서 부분 API 응답을 검색하는 방법을 보여줍니다.

참고: API의 시작하기 가이드에서 부분 요청 및 응답에 관해 자세히 알아보세요.

v3 API는 애플리케이션이 불필요한 데이터를 전송, 파싱, 저장하지 않도록 부분 리소스의 검색을 허용하고 실제로 요구합니다. 이를 통해 API가 네트워크, CPU, 메모리 리소스를 더 효율적으로 사용할 수 있도록 합니다.

이 API는 API 응답에 포함해야 하는 리소스 속성을 식별할 수 있는 두 가지 요청 매개변수인 partfields를 지원합니다. part 매개변수는 리소스를 삽입하거나 업데이트하는 API 요청에서 설정해야 하는 속성도 식별합니다.

업데이트 요청에서 이전에 값이 있었던 리소스 속성의 값을 지정하지 않으면 다음 조건이 참인 경우 기존 값이 삭제됩니다.

  • 속성 값은 요청에 의해 수정될 수 있습니다. 예를 들어 video 리소스를 업데이트할 때는 snippet.description 속성의 값을 업데이트할 수 있지만 snippet.thumbnails 객체의 값은 업데이트할 수 없습니다.

  • 요청의 part 매개변수 값은 속성이 포함된 리소스 부분을 식별합니다.

예를 들어 아래에 표시된 video 리소스를 업데이트하려고 한다고 가정해 보겠습니다. 아래에 표시된 모든 속성은 API를 통해 업데이트할 수 있으며 예와 관련 없는 리소스 속성은 생략되었습니다.

{
  "snippet": {
    "title": "Old video title",
    "description": "Old video description",
    "tags": ["keyword1","keyword2","keyword3"],
    "categoryId: 22
  },
  "status": {
    "privacyStatus": "private",
    "publishAt": "2014-09-01T12:00:00.0Z",
    "license": "youtube",
    "embeddable": True,
    "publicStatsViewable": True
  }
}

videos.update 메서드를 호출하고 part 매개변수 값을 snippet로 설정합니다. API 요청 본문에는 다음 리소스가 포함됩니다.

{
  "snippet": {
    "title": "New video title",
    "tags": ["keyword1","keyword2","keyword3"],
    "categoryId: 22
  }
}

이 요청은 동영상 제목을 업데이트하고 설명을 삭제하며 태그 또는 카테고리 ID는 변경하지 않습니다. 요청에 snippet.description 속성의 값이 지정되지 않아 동영상 설명이 삭제됩니다.

part 매개변수 값에 요청에서 업데이트할 부분 중 하나로 status가 포함되지 않았으므로 status 객체의 속성은 전혀 영향을 받지 않습니다. 실제로 API 요청 본문에 status 객체가 포함된 경우 API는 요청 본문에 예상치 못한 부분이 포함되어 있으므로 400 (Bad Request) HTTP 응답을 반환합니다.