I've a page doing some REST queries using Guzzle 6. It works fine, however sometimes it gets to slow because it's always making queries. I found out that there is guzzle-cache-middleware that is supposed to cache responses from the remote API.
However I can't get it to work, my code follows something like:
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", [
(...)
After running the code I don't get any errors or warnings. Guzzle still gives me the API response, however nothing new appear into /tmp/sitex
.
Do I need to set anything after the request to cache the response? Are there options like setting the TTL of the responses?
The documentation doesn't explain any of this, so if someone experienced on Guzzle can help me it would be nice. :)