Puncte:0

De ce răspunsurile mele de odihnă nu sunt stocate în cache?

drapel ph

Am creat un punct final de odihnă simplu pentru a testa stocarea în cache și văd că răspunsul se actualizează. Ce îl împiedică să fie stocat în cache?

Iată restul codului final:

<?php

spațiu de nume Drupal\nm_base_api\Plugin\rest\resource;

utilizați Drupal\rest\ResourceResponse;
utilizați Drupal\rest\Plugin\ResourceBase;
utilizați Drupal\Core\Cache\CacheableMetaData;



/**
 * Acesta este doar un exemplu.
 *
 * @RestResource(
 * id = "test",
 * label = @Translation ("Test"),
 * uri_paths = {
 * „canonic” = „/api/v1/test”
 *}
 * )
 */
clasa Testul extinde ResourceBase {

  /**
   * {@inheritdoc}
   */
  funcția publică get() {
    $răspuns = nou ResourceResponse(
      [
        'title' => 'test',
        'time' => time(),
      ]
    );
    $cache_meta_data = new CacheableMetadata();
    $cache_meta_data->setCacheMaxAge(2);
    $response->addCacheableDependency($cache_meta_data);

    returnează $răspuns;
  }

}

Și iată ce văd ca răspuns:

$curl „http://base.test:8020/api/v1/test”
{"title":"test","time":1651152255}

$ curl „http://base.test:8020/api/v1/test”
{"title":"test","time":1651152256}

$ curl „http://base.test:8020/api/v1/test”
{"title":"test","time":1651152257}
sonfd avatar
drapel in
Trebuie doar să adăugați metadatele cache corecte la răspuns?
4uk4 avatar
drapel cn
Răspunde asta la întrebarea ta? [D8: Nu se poate seta vârsta maximă cache pe ResourceResponse](https://drupal.stackexchange.com/questions/255579/d8-unable-to-set-cache-max-age-on-resourceresponse)
Lambic avatar
drapel ph
Se pare că este opusul, ei nu vor cache, dar o au. Vreau memorarea în cache, dar nu o am.
sonfd avatar
drapel in
@Lambic - Vedeți cum au fost adăugate metadate cache în acea postare? Asta trebuie să faci.
Lambic avatar
drapel ph
Am încercat asta și am actualizat exemplul de mai sus, încă nu se întâmplă memorarea în cache
4uk4 avatar
drapel cn
Ar putea fi o setare de dezvoltare locală care dezactivează stocarea în cache?
Lambic avatar
drapel ph
Acest lucru este posibil, așa că am împins codul la o instanță ci pentru a testa acolo și întâmpin în continuare aceeași problemă.De asemenea, rulăm redis ca backend cache, așa că este posibil să fie specific redis.
sonfd avatar
drapel in
Sunt stocate în cache alte pagini?
Lambic avatar
drapel ph
De fapt, este greu de spus, deoarece este un site bazat pe API fără conținut public, dar mă voi juca și voi vedea dacă pot testa asta.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.