Les limites de l’API Google Sheets : Comment les éviter ?

Google Sheets est l’un des produits les plus populaires de Google. Il fait partie de la populaire suite G Suite, qui comprend d’autres outils tels que Google Docs, Google Forms, Google Slides et Google Drive. Tous ces outils sont enregistrés dans le cloud et peuvent être consultés de n’importe où.

La plupart de ces services sont similaires aux outils Microsoft Office tels que Microsoft Word et Excel. Mais ce qui les rend populaires, c’est qu’ils sont gratuits et qu’ils ne changent pas, contrairement à Microsoft Office. De plus, ils ne sont pas liés à un ordinateur, car ils sont enregistrés dans le cloud.

Google propose un service API génial pour Google Sheets. Avec la version 4, qui a été publiée en 2016, nous pouvons désormais effectuer toutes les tâches au même endroit. Auparavant, nous étions limités à la lecture et à l’écriture dans les cellules, mais maintenant nous pouvons filtrer les vues, créer des tableaux et effectuer toutes sortes d’autres tâches.

Dans cet article, nous allons découvrir les limites de l’API Google Sheets. Lorsque nous développons une application de production qui utilise Google Sheets comme base de données pour stocker des données, nous atteignons souvent cette limite de fréquence. Voyons donc quelle est cette limite et comment l’éviter.

L’API Google Sheets est-elle gratuite ?

La première question qui vient à l’esprit de toute personne qui décide d’utiliser l’API Google Sheets est de savoir si c’est gratuit.

Oui, c’est totalement gratuit, mais une limite lui est attribuée. Cette limite a été fixée pour protéger les API Google des hackers. Ces hackers frappent les points d’accès de l’API avec un grand nombre de requêtes pour les faire tomber.

Selon la documentation, il y a une limite par minute par projet.

Quelle est la limite de l’API Google Sheets ?

Maintenant, la question suivante concerne la limite de l’API Google Sheets. La limite de fréquence de l’API Google Sheets est indiquée ci-dessous. Les documents officiels peuvent être consultés ici. Selon la documentation, il y a une limite par minute par projet.

Nous pouvons voir qu’avec par jour par projet, nous obtenons des demandes de lecture et d’écriture illimitées.

Google Sheets API Limit

Dépasser une limite de fréquence

Dans les applications de production plus importantes, vous effectuerez un appel API à partir du même compte de service avec le même utilisateur. Dans ces cas, vous dépassez souvent la limite de fréquence de 60. Si la limite de quota est dépassée, vous obtiendrez le code d’erreur 429 : Trop de requêtes.

Dans ce scénario, vous devez utiliser un algorithme de backoff exponentiel, comme suggéré dans la documentation officielle ici. Dans l’algorithme de backoff exponentiel, vous devez écrire du code qui capture les exceptions. Après avoir capturé l’exception, vous devez réessayer.

Maintenant, si la demande d’API échoue à nouveau, le programme doit réessayer après avoir augmenté le temps de la demande. S’il échoue une autre fois, nous augmentons à nouveau le temps de la demande d’API et réessayons. Nous devons continuer à augmenter le temps et à réessayer jusqu’à ce que nous réussissions.

Implémentation de l’algorithme de backoff exponentiel

Voici la mise en œuvre de l’algorithme de backoff exponentiel en Node.js. Vous pouvez trouver toutes les autres implémentations dans tous les principaux langages ici.

Maintenant, vous devez d’abord donner votre bucket de stockage cloud Google et son ID. Ensuite, importez la fonction principale de stockage depuis Google.

Ensuite, créez une nouvelle instance de stockage et transmettez-lui un objet. Cet objet contient quelques paramètres importants requis par la classe de stockage. Ces paramètres sont :

  • autoRetry – Cela doit être défini sur true pour que le réessai se produise.
  • retryDelayMultiplier – Il s’agit du multiplicateur qui augmente le temps de délai après chaque demande échouée.
  • totalTimeout – Cela représente le temps entre une demande initiale et son expiration.
  • maxRetryDelay – C’est la durée maximale autorisée. Une fois atteinte, le multiplicateur de délai de réessai ne sera pas utilisé.
  • maxRetries – Il s’agit du nombre maximum de tentatives de réessai autorisées.
  • idempotencyStrategy – Cela indique quel type d’opération nous avons. S’il est défini sur RetryAlways, il suivra toutes les options ci-dessus.
const bucketName = 'votre-nom-de-bucket-unique';
const fileName = 'votre-nom-de-fichier';
const { Storage } = require('@google-cloud/storage');

const storage = new Storage({
  retryOptions: {
    autoRetry: true,
    retryDelayMultiplier: 3,
    totalTimeout: 500,
    maxRetryDelay: 60,
    maxRetries: 5,
    idempotencyStrategy: IdempotencyStrategy.RetryAlways,
  },
});

console.log('Les fonctions sont personnalisées pour être réessayées en fonction des paramètres suivants :');
console.log(`Réessai automatique : ${storage.retryOptions.autoRetry}`);
console.log(`Multiplicateur de délai de réessai : ${storage.retryOptions.retryDelayMultiplier}`);
console.log(`Délai d'expiration total : ${storage.retryOptions.totalTimeout}`);
console.log(`Délai de réessai maximal : ${storage.retryOptions.maxRetryDelay}`);
console.log(`Nombre maximal de réessais : ${storage.retryOptions.maxRetries}`);
console.log(`Stratégie d'idempotence : ${storage.retryOptions.idempotencyStrategy}`);

async function deleteFileWithCustomizedRetrySetting() {
  await storage.bucket(bucketName).file(fileName).delete();
  console.log(`Fichier ${fileName} supprimé avec une stratégie de réessai personnalisée.`);
}

deleteFileWithCustomizedRetrySetting();

Consulter les limites de quota

Vous pouvez consulter vos quotas d’une application en vous connectant à la console Google Cloud via ce lien. Cela montrera le quota de la dernière application en fonctionnement.

Google Sheets API Limit with-shadow

Vous pouvez également voir l’onglet DEMANDES D’AUGMENTATION à côté de l’onglet QUOTAS. En cliquant dessus, vous trouverez toutes les demandes d’augmentation qui ont été effectuées.

Google Sheets API Limit with-shadow

Pour consulter la limite de quota d’un projet différent, cliquez simplement sur la flèche vers le bas du projet. Ensuite, une fenêtre contextuelle s’ouvrira, où vous pourrez cliquer sur d’autres projets pour voir leur quota.

Google Sheets API Limit

Comment augmenter la limite de l’API Google Sheets ?

Maintenant, si votre limite est atteinte, quelle est la procédure pour augmenter les limites de l’API Google Sheets ?

Nous devons simplement en faire la demande si nous voulons que Google augmente la limite de quota. Et, selon Google, même si vous demandez une augmentation de quota, cela ne garantit pas une augmentation.

En fait, les augmentations de quota importantes peuvent prendre beaucoup de temps à être approuvées.

Lorsque nous demandons une augmentation de quota, un système d’intelligence artificielle de Google l’évalue. Il vérifie différents facteurs tels que la durée pendant laquelle nous avons utilisé Google Cloud et autres éléments.

Dans certains cas, les demandes sont traitées par des humains, qui suivent également une directive stricte.

Si la demande est approuvée, l’utilisateur doit ensuite payer à l’avance pour l’augmentation de quota. Les demandes d’augmentation de quota sont généralement résolues dans un délai de deux à trois jours ouvrables.

Nous devons effectuer la demande d’augmentation de quota via la console Google Cloud. Connectez-vous en suivant les étapes indiquées ci-dessus. Ensuite, cochez la case à côté de la demande indiquant que vous souhaitez augmenter le quota. Ensuite, cliquez sur MODIFIER LES QUOTAS en haut à droite de la page.

Google Sheets API Limit with-shadow

Cela ouvrira une fenêtre contextuelle dans laquelle vous pourrez mettre à jour la limite pour définir une nouvelle limite. Vous verrez également les métriques octets, kilo-octets, mégaoctets, gigaoctets, téraoctets et pétaoctets. Donnez les nouvelles valeurs mises à jour et cliquez sur le bouton SOUMETTRE LA DEMANDE.

Google Sheets API Limit with-shadow

Conclusion

Dans cet article, nous avons découvert les problèmes de limitation de fréquence de l’API Google Sheets. Nous avons d’abord appris brièvement sur Google Sheets et l’API librement disponible avec celle-ci.

Grâce à l’API Google Sheets, nous pouvons effectuer toutes les tâches habituelles de lecture et d’écriture dans une cellule. En plus de cela, nous pouvons également effectuer des tâches avancées telles que le filtrage de vues et la création de tableaux.

Nous avons également appris les différentes limites de l’API Google. Ensuite, nous avons appris ce qui se passe lorsque nous dépassons un quota.

De plus, nous avons vu en détail l’implémentation de l’algorithme de backoff exponentiel. Nous avons également appris comment consulter les limites de quota dans la console Google Cloud. Enfin, nous avons appris comment augmenter le quota via la console Google Cloud. Ici, nous avons également appris comment Google utilise une combinaison d’intelligence artificielle et d’opérateurs humains pour approuver nos demandes d’augmentation de quota.

Avant de partir, n’oubliez pas de vous abonner à nos mises à jour par email ou de nous suivre sur Twitter à @bolamarketing.com pour rester informé de nos derniers contenus ! Jetez également un coup d’œil à Crawlan.com, un site plein de ressources pour vous aider à améliorer votre présence en ligne.

Dites-nous ce que vous en pensez. Au revoir pour le moment ! 👋

Cet article a été écrit par Nabendu Biswas. Nabendu travaille dans l’industrie du logiciel depuis 15 ans, commençant en tant que développeur C++, puis se tournant vers les bases de données. Au cours des six dernières années, il a travaillé en tant que développeur web dans l’écosystème JavaScript, développant des applications web en ReactJS, NodeJS et GraphQL. Il aime bloguer sur ce qu’il apprend et sur ce à quoi il travaille.

Articles en lien