Кеширование JSON ответа в Drupal

У нас есть контроллер, который выдаёт json ответ. Добавим кеширование.

Начнем с определения контроллера. Пусть сконфигурирован следующий mymodule.routing.yml:

Это значит, что у нас создан класс PublicApi в под каталоге модуля /src/Controller/PublicApi.php. Вот его изначальный код без кеширования.

Если мы хотим закешировать ответ, то нам понадобится другой класс для формирования ответа. Это — CacheableJsonResponse. Он позволяет настроить параметры кеширования с помощью метода addCacheableDependency.

Самая простая зависимость — это от времени.

Рассмотрим, например, установку кеша на 15 минут.

Еще существует как минимум два типа кеширования — это Tags и Context.

Cache tags

Тэги преимущественно связаны с контентом, например пользователями или нодами.

Если вы зададите:

То кеш вашего json будет сбрасываться при изменениях node с nid = 1, и пользователя с uid = 10. При следующем запросе значение вашего json будут рассчитано вновь, а не взято из кеша.

Cache context

Контексты обычно реализуют зависимость от внешних параметров.

Например, вы желаете, чтобы ответ зависел от GET параметра — param. Тогда

Так можно поставить кеш в зависимость от всего url или отдельных его частей.

С точки зрения безопасности, стоит подумать о допустимом разбросе значений параметра (-ов), по которым строится кеш.

Мало букафф? Читайте есчо !

Настраиваем стили в CKEditor / Drupal 9

Сентябрь 11, 2021 г.

Чтобы расширить инструментарий контентщика, обычно в редактор добавляются новые стили. Это позволяет контент-менеджеру на ряду с форматированием, использовать ...

Читать

Отсутствующие переводы в tmgmt

Сентябрь 26, 2024 г.

При не верной настройке провайдера переводов, может случаться следующая проблема - часть текстовых полей полностью или частично оказывается не переведена. ...

Читать

Убрать копейки при выводе цены Drupal/Commerce

Май 16, 2021 г.

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

Читать

Conditional Form Fields в Drupal

Сентябрь 27, 2021 г.

Логика полей или условные поля - это удобная фича в Form API друпал. Она позволяет формализовать кучу мелкой логики на фронт-енд, связанной с взаимодействием пользователя с вашей формой. Здесь я приведу пару примеров использования, а углубиться ...

Читать
 

Комментарии к «Кеширование JSON ответа в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: