Ограничения частоты запросов
Ограничения частоты запросов
Обзор
Независимо от того, распространяется ли токен через портал разработчиков, предоставление OAuth или серверную часть Accounts, которая обслуживает собственные приложения Frame.io, все вызовы API к Frame.io имеют ограничения частоты запросов. Ограничения частоты запросов применяются ко всем запросам API от отдельного пользователя (независимо от того, какой токен или метод аутентификации используется), расходуются и пополняются постепенно, и отражаются в заголовках ответов каждого запроса к API-интерфейсу Frame.io. Для каждой конечной точки настроены собственные ограничения, которые варьируются от 10 запросов/минуту до 100 запросов/секунду. Запросы, превышающие установленное ограничение для определенной конечной точки, получают ошибку 429 HTTP в ответ.
Расход и пополнение
API-интерфейс Frame.io использует стратегию дырявого ведра для прогрессивного ограничения частоты запросов, при котором лимиты восстанавливаются постепенно в течение отведенного временного окна. Другими словами, не применяется полный сброс, после которого происходит восстановление лимитов для конкретного ресурса, что характерно для стратегий «фиксированного» и «скользящего окна». Вместо этого оставшиеся лимиты постоянно обновляются со скоростью, пропорциональной общему лимиту ресурса и его временному окну.
Экспоненциальная задержка
Наша рекомендуемая стратегия для управления ограничениями частоты запросов обычно называется «экспоненциальной задержкой».
Вкратце:
- При получении ошибки
429приостановите на определенный период (обычно на одну секунду). - Если снова возвращается ошибка
429, увеличивайте период ожидания экспоненциально до тех пор, пока не будет восстановлена нормальная работа.
Заголовки
Ответы на запросы API-интерфейса всегда будут включать следующие три заголовка, которые следует использовать для ограничения ваших исходящих запросов:
Пример
Следующий пример взят из ответа на запрос GET v2/assets/:id/children для получения дочерних ресурсов корневой папки проекта, папки или стека версий. Ограничение для этого пути составляет 40 запросов за 60 000 мс (одну минуту), и остается 39 запросов после того, как один был сделан.
Сведения
Ограничения частоты запросов сильно различаются для разных путей ресурсов в API-интерфейсе Frame.io. Ниже приведены некоторые избранные сведения для удобства чтения в формате «ресурс – действие» (например, «Ресурсы – Обновление» вместо PUT /assets/:id).
Как правило, пути к ресурсам, которые создают новые данные, ограничены частотой до 100 вызовов в минуту, а пути к ресурсам, которые получают списки ресурсов, ограничены 200 вызовами в минуту.