Leistung steigern

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 Feld b auszuwählen, das im Feld a verschachtelt ist. a/b/c verwenden um ein Feld c auszuwählen, das in b 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 dem fields=advertisers(advertiserId) entspricht fields=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 einen list-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 Feld advertisers-Array.
advertisers/advertiserId Gibt nur advertiserId zurück für alle Elemente im advertisers-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 das generalConfig-Objekt fest, die wiederum im advertisers-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 das generalConfig-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 generalConfig domainUrl für jedes Element in advertisers 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".