ฉันสร้างจุดสิ้นสุดจุดพักอย่างง่ายเพื่อทดสอบการแคช และฉันเห็นการอัปเดตการตอบกลับ อะไรหยุดไม่ให้ถูกแคช?
นี่คือรหัสปลายทางที่เหลือ:
<?php
เนมสเปซ Drupal\nm_base_api\Plugin\rest\resource;
ใช้ Drupal\rest\ResourceResponse;
ใช้ Drupal\rest\Plugin\ResourceBase;
ใช้ Drupal\Core\Cache\CacheableMetaData;
/**
* นี่เป็นเพียงตัวอย่างเท่านั้น
*
* @เรสท์รีซอร์ส(
* id = "ทดสอบ",
* ป้ายกำกับ = @Translation("ทดสอบ"),
* uri_paths = {
* "canonical" = "/api/v1/ทดสอบ"
* }
* )
*/
การทดสอบคลาสขยาย ResourceBase {
/**
* {@inheritdoc}
*/
ฟังก์ชั่นสาธารณะได้รับ () {
$response = ใหม่ ResourceResponse(
[
'title' => 'ทดสอบ',
'เวลา' => เวลา(),
]
);
$cache_meta_data = ใหม่ CacheableMetadata();
$cache_meta_data->setCacheMaxAge(2);
$response->addCacheableDependency($cache_meta_data);
ส่งคืน $response;
}
}
และนี่คือสิ่งที่ฉันเห็นในการตอบสนอง:
$curl 'http://base.test:8020/api/v1/test'
{"ชื่อ":"ทดสอบ","เวลา":1651152255}
$ curl 'http://base.test:8020/api/v1/test'
{"ชื่อ":"ทดสอบ","เวลา":1651152256}
$ curl 'http://base.test:8020/api/v1/test'
{"ชื่อ":"ทดสอบ","เวลา":1651152257}