Рейтинг:0

Почему мои остальные ответы не кэшируются?

флаг ph

Я создал простую конечную точку отдыха для проверки кэширования и вижу обновление ответа. Что мешает кэшировать?

Вот оставшийся код конечной точки:

<?php

пространство имен Drupal\nm_base_api\Plugin\rest\resource;

используйте Drupal\rest\ResourceResponse;
используйте Drupal\rest\Plugin\ResourceBase;
используйте Drupal\Core\Cache\CacheableMetaData;



/**
 * Это просто пример.
 *
 * @RestResource(
 * идентификатор = "тест",
 * метка = @Translation("Тест"),
 * uri_paths = {
 * "канонический" = "/api/v1/тест"
 * }
 * )
 */
класс Test расширяет ResourceBase {

  /**
   * {@inheritdoc}
   */
  публичная функция get () {
    $ ответ = новый ResourceResponse (
      [
        'название' => 'тест',
        'время' => время(),
      ]
    );
    $cache_meta_data = новые CacheableMetadata();
    $cache_meta_data->setCacheMaxAge(2);
    $response->addCacheableDependency($cache_meta_data);

    вернуть $ответ;
  }

}

И вот что я вижу в ответ:

$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}
sonfd avatar
флаг in
Вам просто нужно добавить правильные метаданные кеша в ответ?
4uk4 avatar
флаг cn
Отвечает ли это на ваш вопрос? [D8: невозможно установить максимальный возраст кеша в ResourceResponse] (https://drupal.stackexchange.com/questions/255579/d8-unable-to-set-cache-max-age-on-resourceresponse)
Lambic avatar
флаг ph
Это, кажется, наоборот, они не хотят кэширования, но имеют его. Я хочу кэширование, но его нет.
sonfd avatar
флаг in
@Lambic - Вы видите, как они добавили метаданные кеша в этот пост? Это то, что вам нужно сделать.
Lambic avatar
флаг ph
Я пробовал это и обновил приведенный выше пример, но кэширование по-прежнему не происходит.
4uk4 avatar
флаг cn
Может быть, локальная настройка разработчика отключает кеширование?
Lambic avatar
флаг ph
Это возможно, поэтому я отправил код на экземпляр ci, чтобы протестировать там, и все еще сталкиваюсь с той же проблемой.Также мы используем Redis в качестве бэкенда кеша, так что, возможно, он специфичен для Redis.
sonfd avatar
флаг in
Кэшируются ли другие страницы?
Lambic avatar
флаг ph
На самом деле трудно сказать, потому что это сайт, управляемый API, без общедоступного контента, но я поиграюсь и посмотрю, смогу ли я это проверить.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.