【发布时间】:2015-09-10 10:59:54
【问题描述】:
我正在使用 laravel 构建一个网络,它依赖于外部 API 来获取我向用户显示的数据(在我的例子中是 http://eztvapi.re)。我正在使用 guzzle 进行 api 调用,它工作正常。
API 非常简单,它要么显示节目列表(带有元数据),要么显示一个节目的信息(给定 ID)。
当我需要显示信息时,问题就出现了,比如说,15 个给定的节目显示用户已选为收藏夹。这意味着我需要查询 API 15 次,每个节目一个,这会大大降低网络速度(而且对 API 的请求太多,这对我来说似乎不合适)。
基本上是这样的:
foreach ($favorites as $fav) {
$client = new Client();
$res = $client->get('http://eztvapi.re/show/'.$fav->id);
$show = $res->json();
}
我曾考虑将 api 的内容复制到我的数据库中,但这完全违背了连接到 api 的目的,并且需要非常频繁地更新它。我想也许缓存是要走的路,但我不清楚如何接近那条路线,我搜索了 laravel 缓存,它似乎只是为了将查询缓存到数据库(或者我可能不太了解文档)。
这样做的正确方法是什么?
【问题讨论】:
-
这对 guzzle3.readthedocs.org/plugins/cache-plugin.html 或 laravel 有什么帮助,这看起来很有希望 github.com/RemiCollin/GuzzleCache
-
可以,我看看能不能实现
-
嗯,我用了这个:github.com/guzzle/cache-subscriber,它在加载时间上没有任何区别。
标签: php api laravel laravel-5 guzzle