如何处理外部API速率限制?

时间:2018-12-12 08:30:49

标签: laravel api vimeo-api rate-limiting

在使用诸如 Twitter Vimeo 之类的服务时,他们会对出现在该API上的每个请求使用API​​速率限制,并且它们将返回(在响应的标头中)这个:

X-RateLimit-Limit X-RateLimit-剩余 X-RateLimit-重置

例如,在我的应用中,我将使用 Vimeo API 处理很多事情。例如:

  • 上传视频
  • 编辑视频
  • 获取视频

对于每个对 Vimeo API 的请求,我必须检查 X-RateLimit-Remaining 的值是否大于0,以使继续或返回错误(如果已超过速率限制)。 (Vimeo API rate limit)。


是否有处理外部API速率限制的好方法?

存储这些值的最佳位置是什么,以便我可以在需要时检索它们?

注意:Vimeo API不仅会在达到速率限制时返回错误,而且会在文档中显示超出该限制时禁止我的应用程序。所以我需要将它们存储在某些地方。 (#Vimeo API rate limit)。

1 个答案:

答案 0 :(得分:0)

您应该在本地缓存值,具体取决于您的缓存驱动程序,可以是redis,memcached等...

在此处了解更多信息:https://laravel.com/docs/5.7/cache

我建议您创建一个类来管理缓存的值,并在需要时从API更新/创建它们。该类可能是该类的依赖项,而该类实际上包含调用外部API的逻辑。