I’m trying to create a REST API get
response. My class extends ResourceBase
and this is inside my classes get
function.
$ 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 Drupal cache. When I curl the interface this is the output for the first hit.
curl 'https://mylocaldrupal.dd:8443/rest/upcoming_matches/1?_format=json' -i -k 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}
And a second hit after a few seconds:
curl 'https://mylocaldrupal.dd:8443/rest/upcoming_matches/1?_format=json' -i -k 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}
Can’t really figure it out and the Drupal.org docs doesn’t really seem to help me neither. Am I missing something obvious?