성능 향상

이 문서에서는 실행할 수 있습니다 경우에 따라 구현된 다른 API의 예가 사용됨 설명하겠습니다 그러나 동일한 개념이 디스플레이 및 Video 360 API

부분 리소스 작업

API 호출의 성능을 개선하는 또 다른 방법은 사용자가 관심이 있는 부분을 채워야 합니다. 이렇게 하면 애플리케이션이 불필요한 필드를 전송, 파싱, 저장하지 않도록 하여 메모리와 같은 리소스를 더 효율적으로 사용할 수 있게 되었습니다.

부분 응답

기본적으로 서버는 요청을 처리합니다 성능 향상을 위해 서버에 필요한 필드만 검색하고 부분 응답을 받을 수 있습니다.

부분 응답을 요청하려면 fields 요청 매개변수를 사용하여 반환합니다. 이 매개변수를 모든 요청에 사용할 수 있습니다. 응답 데이터를 반환합니다.

다음 예는 fields 매개변수를 디스플레이 및 Video 360 API

단순 요청: 이 HTTP GET 요청은 fields 매개변수를 생략합니다. 전체 리소스를 반환합니다.

GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1

전체 리소스 응답: 전체 리소스 데이터에는 다음이 포함됩니다. 필드를 비롯하여 간결하게 하기 위해 생략된 많은 필드가 있습니다.

200 OK

{
 "advertisers": [
  {
   "name": "advertisers/1",
   "advertiserId": "1",
   "partnerId": "1",
   "displayName": "Example Advertiser 1",
   "entityStatus": "ENTITY_STATUS_ACTIVE",
   "updateTime": "2019-01-01T00:00:00.000000Z",
   "generalConfig": {
    "domainUrl": "http://example.com",
    "timeZone": "America/New_York",
    "currencyCode": "USD",
    "address": {
    }
   },
   "adServerConfig": {
    "thirdPartyOnlyConfig": {
    }
   },
   "creativeConfig": {
   },
   "dataAccessConfig": {
    "sdfConfig": {
     "sdfConfig": {
      "version": "VERSION_3_1"
     }
    }
   },
   "integrationDetails": {
   }
  },
  {
   "name": "advertisers/2",
   "advertiserId": "2",
   "partnerId": "1",
   "displayName": "Example Advertiser 2",
   "entityStatus": "ENTITY_STATUS_ACTIVE",
   "updateTime": "2019-01-01T00:00:00.000000Z",
   "generalConfig": {
    "domainUrl": "http://example.com",
    "timeZone": "America/New_York",
    "currencyCode": "USD",
    "address": {
    }
   },
   "adServerConfig": {
    "thirdPartyOnlyConfig": {
    }
   },
   "creativeConfig": {
   },
   "dataAccessConfig": {
    "sdfConfig": {
     "sdfConfig": {
      "version": "VERSION_3_1"
     }
    }
   },
   "integrationDetails": {
   }
  },
  ...
 ],
 "nextPageToken": "..."
}

부분 응답 요청: 동일한 리소스에 대한 다음 요청 는 fields 매개변수를 사용하여 반환되는 데이터의 양을 크게 줄입니다.

GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1&fields=advertisers(advertiserId,partnerId,displayName)

부분 응답: 위 요청에 대한 응답으로 서버에서 이 응답에는 각 광고주의 광고주 ID, 표시 이름 및 파트너 ID 속성(해당하는 경우) 있습니다.

200 OK

{
 "advertisers": [
  {
   "advertiserId": "1",
   "partnerId": "1",
   "displayName": "Example Advertiser 1"
  },
  {
   "advertiserId": "2",
   "partnerId": "1",
   "displayName": "Example Advertiser 2"
  },
  ...
 ]
}

응답은 선택한 필드만 포함된 JSON 객체입니다. 및 주변을 둘러싸고 있는 상위 객체입니다.

fields 매개변수의 형식을 지정하는 자세한 방법은 다음 부분에서 다룹니다. 정확히 무엇을 반환하는지에 대한 자세한 내용을 볼 수 있습니다.

fields 매개변수 구문 요약

fields 요청 매개변수 값의 형식은 대략 XPath를 기반으로 합니다. 구문을 사용합니다 지원되는 구문은 아래에 요약되어 있으며 추가 예는 다음과 같습니다. 다음 섹션에서 설명합니다.

  • 여러 필드를 선택하려면 쉼표로 구분된 목록을 사용합니다.

  • a/b를 사용하여 a 필드 내에 중첩된 b 필드를 선택합니다. a/b/c 사용 b 내에 중첩된 c 필드를 선택합니다.

  • 하위 선택자를 사용하여 배열의 특정 하위 필드 세트를 요청하거나 표현식을 괄호 '( )' 안에 넣어 객체를 반환합니다.

    예: fields=advertisers(advertiserId,generalConfig/domainUrl) 는 광고주 배열입니다. 단일 하위 필드를 지정할 수도 있습니다. fields=advertisers(advertiserId)는 다음과 동일합니다. fields=advertisers/advertiserId입니다.

fields 매개변수 사용 방법의 추가 예시

아래 예에서는 fields 매개변수 값이 어떻게 표시되는지에 대한 설명을 제공합니다. 응답의 영향을 받습니다

반환받을 필드 지정(또는 필드 선택)

fields 요청 매개변수 값은 쉼표로 구분된 필드 목록입니다. 각 필드는 응답의 루트를 기준으로 지정됩니다. 따라서 list 작업을 수행하고 있는 경우 응답은 컬렉션이고 일반적으로 리소스의 배열이 포함됩니다 어떤 작업을 수행 중인 경우 단일 리소스를 반환하는 경우 필드는 해당 리소스를 기준으로 지정됩니다. 리소스도 제공합니다 선택한 필드가 배열 (또는 배열의 일부)인 경우 서버는 는 배열의 모든 요소 중에서 선택된 부분을 반환합니다.

다음은 컬렉션 수준의 몇 가지 예입니다.

효과
advertisers 모든 요소를 반환합니다. advertisers 배열, 다음을 포함 모든 필드를 포함하지만 다른 필드는 없습니다.
advertisers,nextPageToken nextPageToken와 필드와 advertisers 배열
advertisers/advertiserId advertiserId만 반환합니다. 의 모든 요소에 대해 advertisers 배열

중첩 필드가 반환되면 응답에는 둘러싸고 있는 상위 객체입니다. 상위 필드에 다른 하위 필드가 아닌 이들도 함께 선택됩니다. 명시적으로 초기화합니다.
advertisers/generalConfig/domainUrl domainUrl 필드를 반환합니다. (generalConfig 객체의 경우) 이는 자체 포드가 advertisers 배열

다음은 리소스 수준의 몇 가지 예입니다.

효과
advertiserId advertiserId 필드를 반환합니다. 자동으로 생성됩니다
generalConfig/domainUrl domainUrl 필드를 반환합니다. (generalConfig 객체용) 리소스를 요청할 수 있습니다
하위 선택을 사용하여 특정 필드의 일부만 요청합니다.

기본적으로 요청에 특정 필드가 지정되어 있으면 서버에서 전체가 될 수 있습니다. 응답을 지정할 수 있습니다. 특정 하위 필드만 포함하는 단어입니다. "( )"을(를) 사용하면 됩니다. 하위 선택 문법을 사용합니다.

효과
advertisers(advertiserId,generalConfig/domainUrl) 다음 값 advertiserId 및 GeneralConfig domainUrl: 각 요소의 advertisers 배열됩니다.
부분 응답 처리

서버가 fields 쿼리가 포함된 유효한 요청을 처리한 후 매개변수가 있으면 요청된200 OK 데이터를 수집하는 데 사용됩니다 fields 쿼리 매개변수에 오류가 있거나 매개변수가 유효하지 않은 경우 서버에서 오류와 함께 HTTP 400 Bad Request 상태 코드를 반환합니다. 필드 선택에 무엇이 잘못되었는지 알려주는 메시지 (예: "Invalid field selection a/b")을 입력합니다.