Guzzle 6 を使用していくつかの REST クエリを実行しているページがあります。正常に動作しますが、常にクエリを作成しているため、速度が低下することがあります。リモート API からの応答をキャッシュするはずの guzzle-cache-middlewareがあることがわかりました。
しかし、私はそれを動作させることができません.私のコードは次のようになります:
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use League\Flysystem\Adapter\Local;
use Kevinrob\GuzzleCache\CacheMiddleware;
use Kevinrob\GuzzleCache\Strategy\PrivateCacheStrategy;
use Kevinrob\GuzzleCache\Storage\FlysystemStorage;
(...)
$stack = HandlerStack::create();
$stack->push(
new CacheMiddleware(
new PrivateCacheStrategy(
new FlysystemStorage(
new Local("/tmp/sitex")
)
)
),
"cache"
);
// Request
$client = new Client([
"handler" => $stack,
"base_uri" => "http://...,
"timeout" => 2.0,
]);
$response = $client->request("GET", "/posts", [
(...)
コードを実行した後、エラーや警告は表示されません。Guzzle は引き続き API 応答を返しますが、新しいものは何も表示されません/tmp/sitex
。
応答をキャッシュするにはどうすればよいですか? 応答の TTL を設定するようなオプションはありますか?
これを達成する方法についてのドキュメントはあまり明確ではありません。:)