在使用诸如 Twitter 或 Vimeo 之类的服务时,他们会对出现在该API上的每个请求使用API速率限制,并且它们将返回(在响应的标头中)这个:
X-RateLimit-Limit X-RateLimit-剩余 X-RateLimit-重置
例如,在我的应用中,我将使用 Vimeo API 处理很多事情。例如:
对于每个对 Vimeo API 的请求,我必须检查 X-RateLimit-Remaining 的值是否大于0,以使继续或返回错误(如果已超过速率限制)。 (Vimeo API rate limit)。
注意:Vimeo API不仅会在达到速率限制时返回错误,而且会在文档中显示超出该限制时禁止我的应用程序。所以我需要将它们存储在某些地方。 (#Vimeo API rate limit)。
答案 0 :(得分:0)
您应该在本地缓存值,具体取决于您的缓存驱动程序,可以是redis,memcached等...
在此处了解更多信息:https://laravel.com/docs/5.7/cache
我建议您创建一个类来管理缓存的值,并在需要时从API更新/创建它们。该类可能是该类的依赖项,而该类实际上包含调用外部API的逻辑。