Score:0

การเรียก REST API จะถูกแคชไว้เสมอ

ธง cn

ใน Drupal 9.2.6 ฉันมีปัญหาในการแคช

รหัสที่ฉันใช้มีดังต่อไปนี้

$returnValues ​​= [
  'value' => 'ทดสอบ',
  'เวลา' => เวลา(),
];

$response = ใหม่ ResourceResponse($returnValues, 200, []);
$disable_cache = ใหม่ CacheableMetadata();
$disable_cache->setCacheMaxAge(0);
$response->addCacheableDependency($disable_cache);
ส่งคืน $response;

สิ่งนี้นำไปสู่ข้อผิดพลาดนี้

TypeError: อาร์กิวเมนต์ 1 ที่ส่งผ่านไปยัง Symfony\Component\Serializer\Encoder\ChainEncoder::getEncoder() ต้องเป็นประเภทสตริง null ที่กำหนด เรียกใน /webspace/public/vendor/symfony/serializer/Encoder/ChainEncoder.php ออนไลน์ 49 ใน Symfony\Component\Serializer\Encoder\ChainEncoder->getEncoder() (Zeile 80 ใน /webspace/public/vendor/symfony/serializer/Encoder/ChainEncoder.php)

นอกจากนี้ยังใช้งานไม่ได้

$response = ใหม่ ResourceResponse($returnValues);
$response->addCacheableDependency($returnValues);
ส่งคืน $response;

มีอะไรผิดปกติ?

Kevin avatar
in flag
คุณไม่ต้องการให้มันแคช? แต่คุณกำลังเพิ่มการอ้างอิงที่แคชได้? https://drupal.stackexchange.com/questions/182863/rest-get-without-caching
YusufFidan avatar
cn flag
@apaderno สิ่งนี้ถูกแคชด้วย: $response = ตอบกลับใหม่ (); $response->setStatusCode(200); $response->setContent(json_encode($returnValues)); ส่งคืน $response;
us flag
คำถามนี้น่าจะมีคำตอบที่ถูกต้อง: https://drupal.stackexchange.com/q/182863/10645
YusufFidan avatar
cn flag
ฉันไม่รู้ว่าทำไม - แต่วันนี้มันทำงานได้ตามที่คาดไว้
Score:0
ธง ph

ใช้ Drupal\rest\ModifiedResourceResponse แทน ResourceResponse ซึ่งจะไม่ถูกแคช

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา