Questo documento illustra alcune tecniche che puoi utilizzare per migliorare il rendimento la tua applicazione. In alcuni casi, vengono usati esempi di altre API implementate per illustrare le idee presentate. Tuttavia, valgono gli stessi concetti alla Rete Display e l'API Video 360.
Utilizzo di risorse parziali
Un altro modo per migliorare le prestazioni delle chiamate API è quello di inviare la porzione di dati che ti interessa. Ciò consente alla tua applicazione evitare di trasferire, analizzare e archiviare i campi non necessari, pertanto può utilizzare a risorse come rete, CPU e memoria.
Risposta parziale
Per impostazione predefinita, il server restituisce la rappresentazione completa di una risorsa nell'elaborazione delle richieste. Per ottenere prestazioni migliori, puoi chiedere al server di inviare solo i campi di cui hai davvero bisogno e riceverai invece una risposta parziale.
Per richiedere una risposta parziale, utilizza il parametro di richiesta fields
per specificare
i campi che vuoi restituire. Puoi utilizzare questo parametro con qualsiasi richiesta
che restituisce i dati di risposta.
Esempio
L'esempio seguente mostra l'utilizzo del parametro fields
con il parametro
Display e l'API Video 360.
Richiesta semplice: questa richiesta HTTP GET
omette il parametro fields
e
restituisce la risorsa completa.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1
Risposta completa della risorsa: i dati completi della risorsa includono quanto segue. campi, insieme a molti altri che sono stati omessi per brevità.
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": "..."
}
Richiesta di una risposta parziale: la seguente richiesta per la stessa risorsa
utilizza il parametro fields
per ridurre notevolmente la quantità di dati restituiti.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1&fields=advertisers(advertiserId,partnerId,displayName)
Risposta parziale: in risposta alla richiesta riportata sopra, il server restituisce una risposta di tipo risposta che contiene un array di inserzionisti essenziali che include solo ID inserzionista, nome visualizzato e proprietà ID partner di ciascun inserzionista, se presenti.
200 OK
{
"advertisers": [
{
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1"
},
{
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2"
},
...
]
}
Tieni presente che la risposta è un oggetto JSON che include solo i campi selezionati. e gli oggetti principali che lo contengono.
Di seguito vengono trattati i dettagli sulla formattazione del parametro fields
, seguiti da
ulteriori dettagli su ciò che viene esattamente restituito nella risposta.
Riepilogo sintassi dei parametri dei campi
Il formato del valore del parametro di richiesta fields
è basato liberamente su XPath
a riga di comando. La sintassi supportata è riepilogata di seguito e ulteriori esempi sono
forniti nella sezione seguente.
Utilizza un elenco separato da virgole per selezionare più campi.
Utilizza
a/b
per selezionare un campob
nidificato all'interno del campoa
. usaa/b/c
per selezionare un campoc
nidificato all'interno dib
.Utilizzare un sottoselettore per richiedere un insieme di sottocampi specifici di array mettendo le espressioni tra parentesi "
( )
".Ad esempio:
fields=advertisers(advertiserId,generalConfig/domainUrl)
restituisce solo l'ID inserzionista e l'URL del dominio per ogni elemento in dell'array di inserzionisti. Puoi anche specificare un singolo campo secondario, in cuifields=advertisers(advertiserId)
equivale afields=advertisers/advertiserId
.
Altri esempi di utilizzo del parametro campi
I seguenti esempi includono descrizioni di come il valore parametro fields
influisce sulla risposta.
- Identifica i campi che vuoi restituire o effettua selezioni dei campi.
Il valore del parametro di richiesta
fields
è un elenco di campi separati da virgole e ogni campo è specificato rispetto alla radice della risposta. Pertanto, se stanno eseguendo un'operazionelist
, la risposta è una raccolta e di solito include un array di risorse. Se stai eseguendo un'operazione che restituisce una singola risorsa, i campi vengono specificati risorsa. Se il campo selezionato è (o fa parte) di un array, il server restituisce la parte selezionata di tutti gli elementi nell'array.Ecco alcuni esempi a livello di raccolta:
Esempio Effetto advertisers
Restituisce tutti gli elementi in Array advertisers
, tra cui tutti i campi di ogni elemento, ma nessun altro campo.advertisers,nextPageToken
Restituisce sia nextPageToken
e tutti gli elementi nel campo Arrayadvertisers
.advertisers/advertiserId
Restituisce solo advertiserId
per tutti gli elementi Arrayadvertisers
.
Ogni volta che un campo nidificato restituito, la risposta include che contengono gli oggetti principali. I campi principali non includono qualsiasi altro campo secondario, a meno che anche questi vengono selezionati in modo esplicito.advertisers/generalConfig/domainUrl
Restituisce il campo domainUrl
per l'oggettogeneralConfig
, che a sua volta è nidificata sotto Arrayadvertisers
.Ecco alcuni esempi a livello di risorsa:
Esempio Effetto advertiserId
Restituisce il campo advertiserId
della risorsa richiesta.generalConfig/domainUrl
Restituisce il campo domainUrl
per l'oggettogeneralConfig
nella risorsa richiesta.- Richiedi solo parti di campi specifici utilizzando le selezioni secondarie.
Per impostazione predefinita, se la richiesta specifica campi specifici, il server restituisce gli oggetti o gli elementi di array nella loro interezza. Puoi specificare una risposta che include solo alcuni sottocampi. Per farlo utilizzi "
( )
" sintassi di sottoselezione, come nell'esempio riportato di seguito.Esempio Effetto advertisers(advertiserId,generalConfig/domainUrl)
Restituisce solo il valore valori di advertiserId
e generalConfigdomainUrl
per ogni elementoadvertisers
un array di dati.
Gestione delle risposte parziali
Dopo che un server elabora una richiesta valida che include la query fields
, restituisce un codice di stato HTTP 200 OK
, insieme alla richiesta
e i dati di Google Cloud. Se il parametro di query fields
contiene un errore o non è valido per altri motivi, il parametro
il server restituisce un codice di stato HTTP 400 Bad Request
, insieme a un errore
che indica il problema nella selezione dei campi (ad esempio
"Invalid field selection a/b"
).