다음 예는 YouTube Data API (v3)에서 부분 API 응답을 검색하는 방법을 보여줍니다.
참고: API의 시작하기 가이드에서 부분 요청 및 응답에 대한 자세한 내용을 확인할 수 있습니다.
v3 API를 사용하면 애플리케이션이 불필요한 데이터를 전송, 파싱, 저장하지 않도록 부분 리소스를 검색할 수 있으며 실제로도 필요합니다. 이를 통해 API가 네트워크, CPU, 메모리 리소스를 더 효율적으로 사용할 수 있도록 합니다.
API는 두 가지 요청 매개변수인 part
및 fields
를 지원하므로 API 응답에 포함되어야 하는 리소스 속성을 식별할 수 있습니다. 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 응답을 반환합니다.