In diesem Dokument werden einige Techniken beschrieben, mit denen Sie die Leistung Ihre Anwendung. In einigen Fällen werden Beispiele aus anderen implementierten APIs verwendet. um die vorgestellten Ideen zu veranschaulichen. Die gleichen Konzepte sind jedoch zu Display- und Video 360 API
Mit Teilressourcen arbeiten
Eine andere Möglichkeit zur Verbesserung der Leistung von API-Aufrufen besteht darin, nur Anfragen den Teil der Daten, an dem Sie interessiert sind. Dadurch kann Ihre Anwendung keine unnötigen Felder übertragen, parsen und speichern, wie Netzwerk, CPU und Arbeitsspeicher effizienter arbeiten.
Teilantwort
Standardmäßig gibt der Server die vollständige Darstellung einer Ressource zurück, nachdem zur Verarbeitung von Anfragen. Für eine bessere Leistung können Sie den Server nur die Felder anzeigen, die Sie wirklich benötigen, und erhalten stattdessen eine Teilantwort.
Verwenden Sie den Anfrageparameter fields
, um eine Teilantwort anzufordern.
die Felder, die zurückgegeben werden sollen. Sie können diesen Parameter mit jeder Anfrage verwenden,
das Antwortdaten zurückgibt.
Beispiel
Im folgenden Beispiel wird die Verwendung des Parameters fields
mit dem Parameter
Display- und Video 360 API
Einfache Anfrage:Bei dieser HTTP-GET
-Anfrage werden der Parameter fields
weggelassen und
gibt die vollständige Ressource zurück.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1
Vollständige Ressourcenantwort: Die vollständigen Ressourcendaten umfassen Folgendes: sowie viele andere Felder, die der Übersichtlichkeit halber weggelassen wurden.
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": "..."
}
Anfrage einer Teilantwort:Die folgende Anfrage für dieselbe Ressource.
verwendet den Parameter fields
, um die zurückgegebene Datenmenge deutlich zu reduzieren.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1&fields=advertisers(advertiserId,partnerId,displayName)
Teilantwort: Als Antwort auf die obige Anfrage sendet der Server eine Antwort, die ein reduziertes Array „Advertiser“ (Werbetreibenden) enthält, das nur den Wert Werbetreibenden-ID, Anzeigename und Partner-ID der einzelnen Werbetreibenden, wenn vorhanden ist.
200 OK
{
"advertisers": [
{
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1"
},
{
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2"
},
...
]
}
Die Antwort ist ein JSON-Objekt, das nur die ausgewählten Felder enthält. und die zugehörigen übergeordneten Objekte.
Details zur Formatierung des Parameters fields
werden im Folgenden beschrieben, gefolgt von
was genau in der Antwort zurückgegeben wird.
Parameter "Fields" – Syntaxzusammenfassung
Das Format für den Wert des Anfrageparameters fields
basiert grob auf XPath
Syntax. Die unterstützte Syntax wird unten zusammengefasst. Weitere Beispiele sind
werden im folgenden Abschnitt bereitgestellt.
Zur Auswahl mehrerer Felder verwenden Sie eine durch Kommas getrennte Liste.
Verwenden Sie
a/b
, um ein Feldb
auszuwählen, das im Felda
verschachtelt ist.a/b/c
verwenden um ein Feldc
auszuwählen, das inb
verschachtelt ist.Verwenden Sie ein untergeordnetes Auswahlzeichen, um eine Reihe von untergeordneten Feldern von Arrays oder indem Sie Ausdrücke in Klammern „
( )
“ setzen.Beispiel:
fields=advertisers(advertiserId,generalConfig/domainUrl)
gibt nur die Werbetreibenden-ID und die Domain-URL für jedes Element im Werbetreibenden-Array. Sie können auch ein einzelnes Unterfeld angeben, in demfields=advertisers(advertiserId)
entsprichtfields=advertisers/advertiserId
.
Weitere Beispiele zur Verwendung des Parameters "Fields"
In den Beispielen unten wird beschrieben, wie der Parameterwert fields
die Antwort beeinflusst.
- Identifizieren Sie die Felder, die zurückgegeben werden sollen, oder treffen Sie eine Feldauswahl.
Der Wert des Anfrageparameters
fields
ist eine durch Kommas getrennte Liste von Feldern und wird jedes Feld relativ zum Stamm der Antwort angegeben. Wenn Sie also gerade einenlist
-Vorgang ausführen, ist die Antwort eine Sammlung und enthält in der Regel ein Array von Ressourcen. Wenn Sie einen Vorgang ausführen die eine einzelne Ressource zurückgibt, werden Felder relativ zu diesem . Wenn das ausgewählte Feld ein Array oder Teil eines Arrays ist, zeigt der Server gibt den ausgewählten Teil aller Elemente im Array zurück.Hier einige Beispiele für die Sammlungsebene:
Beispiel Effekt advertisers
Gibt alle Elemente im advertisers
-Array, einschließlich in jedem Element enthalten, keine anderen Felder.advertisers,nextPageToken
Gibt sowohl die nextPageToken
-Werte und alle Elemente im Feldadvertisers
-Array.advertisers/advertiserId
Gibt nur advertiserId
zurück für alle Elemente imadvertisers
-Array.
Wenn ein verschachteltes Feld zurückgegeben wird, enthält die Antwort die einschließenden übergeordneten Objekte. Die übergeordneten Felder enthalten keine alle anderen untergeordneten Felder, es sei denn, sie sind auch ausgewählt explizit auf.advertisers/generalConfig/domainUrl
Gibt das Feld domainUrl
zurück für dasgeneralConfig
-Objekt fest, die wiederum imadvertisers
-Array.Hier einige Beispiele für die Ressourcenebene:
Beispiel Effekt advertiserId
Gibt das Feld advertiserId
zurück der angeforderten Ressource.generalConfig/domainUrl
Gibt das Feld domainUrl
zurück für dasgeneralConfig
-Objekt in der angeforderten Ressource.- Mit der untergeordneten Auswahl fordern Sie nur Teile bestimmter Felder an.
Wenn in Ihrer Anfrage bestimmte Felder angegeben sind, gibt der Server standardmäßig der Objekte oder Array-Elemente als Ganzes anzeigen. Sie können eine Antwort angeben die nur bestimmte Unterfelder umfasst. Sie verwenden hierfür „
( )
“ Syntax für die untergeordnete Auswahl, wie im folgenden Beispiel gezeigt.Beispiel Effekt advertisers(advertiserId,generalConfig/domainUrl)
Gibt nur den folgenden Wert zurück: Werte von advertiserId
und generalConfigdomainUrl
für jedes Element inadvertisers
Array.
Umgang mit Teilantworten
Nachdem ein Server eine gültige Anfrage verarbeitet hat, die die fields
-Abfrage enthält
wird der HTTP-Statuscode 200 OK
zusammen mit dem
Daten. Wenn der Abfrageparameter fields
einen Fehler enthält oder ungültig ist, gibt der Parameter
Server gibt den HTTP-Statuscode 400 Bad Request
zusammen mit einem Fehler zurück
wird Ihnen angezeigt, was bei der Feldauswahl nicht stimmt (z. B.
"Invalid field selection a/b"
.