Requêtes par lot

Ce document explique comment traiter les appels d'API par lot pour réduire le nombre de connexions que votre client doit établir. Le traitement par lot peut améliorer l'efficacité d'une application en diminuant les allers-retours réseau et en augmentant le débit.

Présentation

Chaque connexion effectuée par votre client entraîne une certaine quantité de frais généraux. L'API Google Slides prend en charge les traitements par lot. Cela permet à votre client de placer plusieurs objets de requête, chacun spécifiant un type de requête à exécuter, dans une seule requête par lot. Une requête par lot peut améliorer les performances en combinant plusieurs sous-requêtes dans un seul appel au serveur, récupérant une seule réponse.

Nous encourageons les utilisateurs à toujours regrouper les requêtes par lot. Voici quelques exemples de situations dans lesquelles vous pouvez utiliser le traitement par lot:

  • Vous venez de commencer à utiliser l'API et vous avez de nombreuses données à importer.
  • Vous devez mettre à jour les métadonnées ou les propriétés, telles que la mise en forme, sur plusieurs objets.
  • Vous devez supprimer de nombreux objets.

Limites, autorisations et dépendances

Voici une liste d'autres éléments à prendre en compte lors de la mise à jour groupée:

  • Chaque requête par lot, y compris toutes les sous-requêtes, est comptabilisée comme une requête API dans votre limite d'utilisation.
  • Une requête par lot est authentifiée une seule fois. Cette authentification unique s'applique à tous les objets de mise à jour par lot de la requête.
  • Le serveur traite les sous-requêtes dans l'ordre dans lequel elles apparaissent dans la requête par lot. Les dernières sous-requêtes peuvent dépendre des actions entreprises lors des sous-requêtes précédentes. Par exemple, dans la même requête par lot, les utilisateurs peuvent insérer du texte dans un document existant, puis lui appliquer un style.

Informations sur les lots

Une requête par lot comprend un appel de méthode batchUpdate avec plusieurs sous-requêtes permettant, par exemple, d'ajouter, puis de mettre en forme une présentation.

Chaque demande est validée avant d'être appliquée. Toutes les sous-requêtes de la mise à jour par lot sont appliquées de manière atomique. Autrement dit, si une requête n'est pas valide, la mise à jour complète échoue et aucune des modifications (potentiellement dépendantes) n'est appliquée.

Certaines requêtes fournissent des informations sur les requêtes appliquées. Par exemple, toutes les requêtes de mise à jour par lot pour l'ajout d'objets renvoient des réponses afin que vous puissiez accéder aux métadonnées de l'objet nouvellement ajouté, telles que l'ID ou le titre.

Cette approche vous permet de créer un document Google complet à l'aide d'une requête de mise à jour par lot de l'API avec plusieurs sous-requêtes.

Format d'une requête par lot

Une requête est une requête JSON unique contenant plusieurs sous-requêtes imbriquées avec une propriété obligatoire: requests. Les requêtes sont construites dans un tableau de requêtes individuelles. Chaque requête utilise JSON pour représenter l'objet de la requête et contenir ses propriétés.

Format d'une réponse par lot

Le format de réponse à une requête par lot est semblable au format de requête. La réponse du serveur contient une réponse complète de l'objet de réponse unique.

La propriété de l'objet JSON principale est nommée replies. Les réponses sont renvoyées dans un tableau, chaque réponse à l'une des requêtes occupant le même ordre d'index que la requête correspondante. Certaines requêtes n'ont pas de réponse et la réponse à cet index de tableau est vide.

Exemple

L'exemple de code suivant illustre l'utilisation du traitement par lot avec l'API Slides.

Requête

Cet exemple de requête par lot montre comment:

  • Ajoutez une ressource presentations.pages à une présentation existante, avec un insertionIndex défini sur 1, à l'aide de la méthode CreateSlideRequest.

  • Ajoutez un shapeType de type TEXT_BOX à la nouvelle diapositive à l'aide de la méthode CreateShapeRequest.

  • Insérez le texte "Hello World" dans le nouveau champ à l'aide de la méthode InsertTextRequest.

{
   "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"
         }
      }
   ]
}

Réponse

Cet exemple de réponse par lot affiche des informations sur la manière dont chaque sous-requête de la requête par lot a été appliquée. Notez que la méthode InsertTextRequest ne contient pas de réponse. Par conséquent, la valeur d'index du tableau en [2] est constituée d'accolades vides. La requête par lot affiche la propriété WriteControl, qui indique comment les requêtes d'écriture ont été exécutées.

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