Как обрабатывать ограничения скорости внешнего API? - PullRequest
0 голосов
/ 12 декабря 2018

При использовании таких служб, как Twitter или Vimeo , они используют ограничение скорости API для каждого запроса, который происходит с этим API, и они будут возвращать (в заголовках ответа) что-то вроде этого:

X-RateLimit-Limit X-RateLimit-Remaining X-RateLimit-Reset

Например, в моем приложении я буду использовать Vimeo API для многих вещей ..как:

  • Загрузить видео
  • Редактировать видео
  • Получить видео

За каждый запрос к Vimeo API Я должен проверить, является ли X-RateLimit-Remaining значение> 0 до продолжить или вернуть ошибка , если превышен лимит скорости.( Ограничение скорости Vimeo API ).


Есть ли хорошая практика для обработки ограничения скорости внешнего API?

Как лучше всего хранить эти значения, чтобы я мог получить их при необходимости?

Примечание : API Vimeo не просто возвращает ошибку при достижении предела скорости, но и блокирует мое приложение, когда я превышаю этот предел, как сказано в документации.Поэтому мне нужно хранить их где-нибудь.( # Ограничение скорости Vimeo API ).

1 Ответ

0 голосов
/ 12 декабря 2018

Вы должны выбирать значения локально, в зависимости от вашего драйвера кеша, который может быть redis, memcached и т. Д. ...

Подробнее здесь: https://laravel.com/docs/5.7/cache

Я бы предложилвам нужно создать класс для управления кэшированными значениями, обновляя / создавая их из API, когда это необходимо.Этот класс может быть зависимостью от класса, который фактически содержит логику для вызова внешних API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...