I’m trying to create a REST API GET response. My class extends ResourceBase
and this is inside its get()
method.
$response = new ResourceResponse(['time' => time()], 200); $cache_meta_data = new CacheableMetadata(); $cache_meta_data->setCacheMaxAge(2); $response->addCacheableDependency($page); $response->addCacheableDependency($cache_meta_data); return $response;
This will return the timestamp, but it will be cached forever until I manually clear the cache. When I run curl 'https://mylocaldrupal.dd:8443/rest/upcoming_matches/1?_format=json' -i -k
, this is the output for the first hit.
HTTP/1.1 200 OK Date: Sun, 11 Feb 2018 17:03:06 GMT Server: Apache/2.4.17 (Unix) OpenSSL/1.0.1h mod_fcgid/2.3.9 X-Powered-By: PHP/7.0.14 Cache-Control: must-revalidate, no-cache, private X-Drupal-Dynamic-Cache: UNCACHEABLE X-UA-Compatible: IE=edge Content-language: en X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN Expires: Sun, 19 Nov 1978 05:00:00 GMT X-Generator: Drupal 8 (https://www.drupal.org) X-Drupal-Cache: MISS Transfer-Encoding: chunked Content-Type: application/json {"time":1518368586}
This is the output of the second hit, after a few seconds.
HTTP/1.1 200 OK Date: Sun, 11 Feb 2018 17:04:41 GMT Server: Apache/2.4.17 (Unix) OpenSSL/1.0.1h mod_fcgid/2.3.9 X-Powered-By: PHP/7.0.14 Cache-Control: must-revalidate, no-cache, private X-Drupal-Dynamic-Cache: UNCACHEABLE X-UA-Compatible: IE=edge Content-language: en X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN Expires: Sun, 19 Nov 1978 05:00:00 GMT X-Generator: Drupal 8 (https://www.drupal.org) X-Drupal-Cache: HIT Transfer-Encoding: chunked Content-Type: application/json {"time":1518368586}
I can’t really figure it out. Drupal.org documents don’t really seem to help me neither. Am I missing something obvious?