Melhor desempenho

Este documento aborda algumas técnicas que você pode usar para melhorar o desempenho de seu aplicativo. Em alguns casos, são usados exemplos de outras APIs implementadas para ilustrar as ideias apresentadas. No entanto, os mesmos conceitos são aplicáveis para a guia Display & API Video 360.

Como trabalhar com recursos parciais

Outra forma de melhorar o desempenho das chamadas de API é solicitar somente a parte dos dados em que você tem interesse. Isso permite que seu aplicativo evitar a transferência, a análise e o armazenamento de campos desnecessários recursos como rede, CPU e memória com mais eficiência.

Resposta parcial

Por padrão, o servidor retorna a representação completa de um recurso após processando solicitações. Para um melhor desempenho, você pode pedir ao servidor para enviar somente os campos realmente necessários e, em vez disso, receber uma resposta parcial.

Para solicitar uma resposta parcial, use o parâmetro de solicitação fields para especificar os campos que você quer retornar. Você pode usar esse parâmetro com qualquer solicitação que retorna dados de resposta.

Exemplo

O exemplo a seguir mostra o uso do parâmetro fields com o Rede de Display e API Video 360.

Solicitação simples: essa solicitação HTTP GET omite o parâmetro fields e retorna o recurso completo.

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

Resposta completa do recurso: os dados completos do recurso incluem o seguinte: , junto com muitos outros que foram omitidos para concisão.

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": "..."
}

Solicitação de resposta parcial:a solicitação a seguir para esse mesmo recurso. usa o parâmetro fields para reduzir significativamente a quantidade de dados retornados.

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

Resposta parcial:em resposta à solicitação acima, o servidor envia de volta um que contenha uma matriz de anunciantes reduzida que inclua somente os ID do anunciante, nome de exibição e propriedade do ID do parceiro de cada anunciante, se presente.

200 OK

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

A resposta é um objeto JSON que inclui apenas os campos selecionados e os respectivos objetos pai.

Os detalhes sobre como formatar o parâmetro fields são abordados a seguir, seguidos por mais detalhes sobre o que exatamente é retornado na resposta.

Resumo da sintaxe do parâmetro "Campos"

O formato do valor do parâmetro da solicitação fields se baseia vagamente em XPath. . A sintaxe suportada está resumida abaixo, e exemplos adicionais são na seção a seguir.

  • Use uma lista separada por vírgulas para selecionar vários campos.

  • Use a/b para selecionar um campo b aninhado no campo a. usar a/b/c para selecionar um campo c aninhado em b.

  • Use um subseletor para solicitar um conjunto de subcampos específicos de matrizes ou objetos ao colocar expressões entre parênteses "( )".

    Por exemplo: fields=advertisers(advertiserId,generalConfig/domainUrl) retorna somente o ID do anunciante e o URL de domínio para cada elemento na matriz de anunciantes. Também é possível especificar um único subcampo, em que fields=advertisers(advertiserId) é equivalente a fields=advertisers/advertiserId.

Mais exemplos do uso do parâmetro fields

Os exemplos abaixo incluem descrições de como o valor do parâmetro fields afeta a resposta.

Identifique os campos a serem retornados ou faça seleções de campos.

O valor do parâmetro de solicitação fields é uma lista de campos separada por vírgulas. cada campo é especificado em relação à raiz da resposta. Assim, se você estão executando uma operação list, a resposta é uma coleção geralmente inclui uma série de recursos. Se você estiver executando uma operação que retorna um único recurso, os campos são especificados em relação a recurso. Se o campo selecionado for (ou fizer parte de) uma matriz, o servidor retorna a parte selecionada de todos os elementos na matriz.

Veja alguns exemplos do nível de coleção:

Exemplo Efeito
advertisers Retorna todos os elementos na Matriz advertisers, incluindo todos os campos em cada elemento, mas nenhum outro campo.
advertisers,nextPageToken Retorna nextPageToken campo e todos os elementos na matriz advertisers.
advertisers/advertiserId Retorna apenas o advertiserId para todos os elementos na matriz advertisers.

Sempre que um campo aninhado for for retornado, a resposta incluirá os objetos pai incluídos. Os campos pai não incluem quaisquer outros campos filhos, a menos que eles também são selecionados explicitamente.
advertisers/generalConfig/domainUrl Retorna o campo domainUrl. para o objeto generalConfig, que está aninhado em matriz advertisers.

Veja alguns exemplos com base no recurso:

Exemplo Efeito
advertiserId Retorna o campo advertiserId. do recurso solicitado.
generalConfig/domainUrl Retorna o campo domainUrl. para o objeto generalConfig no recurso solicitado.
Solicite apenas partes de campos específicos usando subseleções.

Por padrão, se a solicitação especificar campos específicos, o servidor retornará os objetos ou elementos da matriz por completo. É possível especificar uma resposta que inclui apenas alguns subcampos. Para isso, use "( )". sintaxe de subseleção, como no exemplo abaixo.

Exemplo Efeito
advertisers(advertiserId,generalConfig/domainUrl) Retorna somente o valores de advertiserId e generalConfig domainUrl para cada elemento a advertisers matriz.
Como processar respostas parciais

Depois que um servidor processar uma solicitação válida que inclua a consulta fields ele retorna um código de status HTTP 200 OK, junto com a solicitação dados. Se o parâmetro de consulta fields tiver um erro ou for inválido, o do servidor retorna um código de status HTTP 400 Bad Request com um erro informando o que estava errado com a seleção dos campos (por exemplo, "Invalid field selection a/b").