Présentation

Qu’un jeton soit distribué via le portail développeur, l’octroi OAuth ou le serveur principal de comptes qui dessert les applications Frame.io, **tous les appels API vers Frame.io sont limités en fréquence.**Les limites de fréquence s’appliquent à l’ensemble des requêtes API d’un utilisateur individuel (quelle que soit la méthode de jeton ou d’authentification utilisée), sont épuisées et renouvelées progressivement, et sont reflétées dans les en-têtes de réponse de chaque requête adressée à l’API Frame.io.Chaque point d’entrée est configuré avec ses propres limites, qui vont de 10 requêtes/minute à 100 requêtes/seconde.Les requêtes qui dépassent la limite de fréquence d’un point d’entrée particulier recevront une erreur HTTP 429 en réponse.

Épuisement et renouvellement

L’API Frame.io utilise une stratégie de seau percé pour la limitation de fréquence progressive, dans laquelle les limites se renouvellent graduellement durant leur fenêtre de temps allouée.En d’autres termes, il n’existe pas de concept de coupure brutale après laquelle les limites se renouvellent pour une ressource particulière (c’est-à-dire les stratégies d’application à « fenêtre fixe » et à « fenêtre glissante »).Les limites restantes se renouvellent plutôt constamment à un rythme proportionnel à la limite et à la fenêtre de temps d’une ressource.

Temporisation exponentielle

Notre stratégie recommandée pour gérer les limites de fréquence est généralement appelée « temporisation exponentielle ».

En bref :

  • Lors de la réception d’un 429, marquez une pause (normalement une seconde)
  • Si un autre 429 est reçu, augmentez exponentiellement la période d’attente jusqu’à ce que le fonctionnement normal reprenne

En-têtes

Les réponses aux requêtes API incluront toujours les trois en-têtes suivants qui doivent être utilisés pour limiter vos requêtes sortantes :

En-têteValeur
x-ratelimit-limitLa limite de fréquence pour ce chemin d’accès de ressource, mesurée en requêtes.
x-ratelimit-remainingLe nombre de requêtes restantes dans la fenêtre de temps actuelle.” ] } ```
x-ratelimit-windowLa fenêtre temporelle pour les limites de ce chemin de ressource, mesurée en millisecondes (ms).

Exemple

L’exemple suivant provient de la réponse à GET v2/assets/:id/children, pour récupérer les ressources enfants d’un Projet racine, d’un dossier ou d’une pile de versions. La limite pour ce chemin est de 40 requêtes par 60 000 ms (une minute), et il reste 39 requêtes après qu’une a été effectuée.

x-ratelimit-limit → 40
x-ratelimit-remaining → 39
x-ratelimit-window → 60000

Détails

Les limites de taux varient considérablement selon les chemins de ressources dans l’API Frame.io. Ci-dessous figurent quelques détails sélectionnés, exprimés pour la lisibilité en tant que ressource et action (par exemple « Assets — Update » au lieu de PUT /assets/:id).

En règle générale, les chemins de ressources qui créent de nouvelles données sont limités à 100 appels par minute ou moins, et les chemins de ressources qui récupèrent des listes de ressources sont limités à 200 appels par minute.

RessourceActionLimite (requêtes)Fenêtre de limite (ms)
Assetscreate51,000
Assetsupdate10
Assetsread51,000
Comments
Presentations
Projects
Review Links
Teams
Team Members
create10060,000
Searchread20060,000