Batchanfragen

In diesem Dokument erfahren Sie, wie API-Aufrufe in einem Batch zusammengefasst werden, um die Anzahl von Verbindungen für den Client zu reduzieren. Durch Batchverarbeitung kann die Effizienz einer Anwendung verbessert werden, da Netzwerkumläufe reduziert und der Durchsatz erhöht werden.

Übersicht

Jede Verbindung, die der Client herstellt, führt zu einem bestimmten Overhead. Die Google Präsentationen API unterstützt Batchanfragen, damit Ihr Client mehrere Anfrageobjekte in einer einzelnen Batchanfrage zusammenfassen kann. Jedes Anfrageobjekt gibt dabei eine einzelne auszuführende Anfrage an. Mit einer Batchanfrage lässt sich die Leistung steigern, indem mehrere untergeordnete Anfragen in einem einzigen Serveraufruf kombiniert und eine einzelne Antwort zurückgegeben wird.

Wir empfehlen Nutzern, immer mehrere Anfragen gleichzeitig zu senden. Hier einige Beispiele für Situationen, in denen Sie Batchanfragen verwenden können:

  • Sie haben gerade mit der Verwendung der API begonnen und müssen viele Daten hochladen.
  • Sie müssen Metadaten oder Eigenschaften wie die Formatierung für mehrere Objekte aktualisieren.
  • Sie müssen viele Objekte löschen.

Einschränkungen, Autorisierung und Abhängigkeiten

Beachten Sie bei der Batch-Aktualisierung Folgendes:

  • Jede Batchanfrage, einschließlich aller untergeordneten Anfragen, wird als eine API-Anfrage auf Ihr Nutzungskontingent angerechnet.
  • Eine Batchanfrage wird einmal authentifiziert. Diese einmalige Authentifizierung gilt für alle Objekte in der Batchaktualisierungsanfrage.
  • Der Server verarbeitet die Teilanfragen in der Reihenfolge, in der sie in der Batchanfrage erscheinen. Letztere können von Aktionen abhängen, die bei früheren untergeordneten Anfragen ausgeführt wurden. So können Nutzer beispielsweise in derselben Batchanfrage Text in ein vorhandenes Dokument einfügen und dann formatieren.

Batchdetails

Eine Batchanfrage besteht aus einem batchUpdate-Methodenaufruf mit mehreren untergeordneten Anfragen, um beispielsweise eine Präsentation hinzuzufügen und dann zu formatieren.

Jede Anfrage wird vor der Anwendung validiert. Alle untergeordneten Anfragen in der Batchaktualisierung werden in kleinstmöglichen Schritten angewendet. Wenn eine Anfrage ungültig ist, schlägt die gesamte Aktualisierung fehl und keine der (potenziell abhängigen) Änderungen werden angewendet.

Bei einigen Anfragen enthalten die Antworten Informationen zu den angewandten Anfragen. Beispielsweise werden für alle Batch-Update-Anfragen zum Hinzufügen von Objekten Antworten zurückgegeben, damit Sie auf die Metadaten des neu hinzugefügten Objekts zugreifen können, z. B. die ID oder den Titel.

Mit diesem Ansatz können Sie ein vollständiges Google-Dokument mit einer API-Batchaktualisierungsanfrage mit mehreren untergeordneten Anfragen erstellen.

Format einer Batchanfrage

Eine Anfrage ist eine einzelne JSON-Anfrage mit mehreren verschachtelten Unteranfragen mit einer erforderlichen Property: requests. Die Anfragen werden in einem Array von einzelnen Anfragen erstellt. Bei jeder Anfrage wird JSON verwendet, um das Anfrageobjekt darzustellen und seine Eigenschaften zu enthalten.

Format einer Batchantwort

Das Antwortformat für eine Batchanfrage ähnelt dem Anfrageformat. Die Antwort des Servers enthält eine vollständige Antwort des einzelnen Antwortobjekts.

Das Attribut des Haupt-JSON-Objekts heißt replies. Die Antworten werden in einem Array zurückgegeben. Jede Antwort auf eine der Anfragen hat dieselbe Indexreihenfolge wie die entsprechende Anfrage. Einige Anfragen haben keine Antworten und die Antwort an diesem Arrayindex ist leer.

Beispiel

Das folgende Codebeispiel zeigt die Verwendung von Batchverarbeitung mit der Google Präsentationen API.

Anfrage

In dieser Beispiel-Batchanfrage wird Folgendes veranschaulicht:

{
   "requests":[
      {
         "createSlide":{
            "insertionIndex":1,
            "objectId":"newSlide"
         }
      },
      {
         "createShape":{
            "elementProperties":{
               "pageObjectId":"newSlide",
               "size":{
                  "height":{
                     "magnitude":50,
                     "unit":"PT"
                  },
                  "width":{
                     "magnitude":200,
                     "unit":"PT"
                  }
               }
            },
            "shapeType":"TEXT_BOX",
            "objectId":"newTextBox"
         }
      },
      {
         "insertText":{
            "objectId":"newTextBox",
            "text":"Hello World"
         }
      }
   ]
}

Antwort

Diese Beispiel-Batchantwort enthält Informationen dazu, wie jede untergeordnete Anfrage innerhalb der Batchanfrage angewendet wurde. Die Methode InsertTextRequest enthält keine Antwort. Daher besteht der Indexwert des Arrays bei [2] aus leeren geschweiften Klammern. In der Batchanfrage wird das Attribut WriteControl angezeigt, das Aufschluss darüber gibt, wie die Schreibanfragen ausgeführt wurden.

{
   "requiredRevisionId": ID
   "presentationId": "",
   "replies":[
      {
         "createSlide":{
            "objectId":"newSlide"
         }
      },
      {
         "createShape":{
            "objectId":"newTextBox"
         }
      },
      {
         
      }
   ],
   "writeControl":{
      "requiredRevisionId": REVISION_ID
   }
}