Кэширование
КэшированиеКэширование разрешения полей

Кэширование разрешения полей

Included in the “Power Extensions” bundle

Добавление директивы @cache в схему GraphQL, которая сохраняет результат обработки поля на диске в течение заданного промежутка времени. При выполнении того же поля в рамках этого интервала возвращается кэшированное значение.

Добавьте @cache к полю, которое нужно кэшировать в GraphQL-запросе, указав, на какое время (в секундах) должен кэшироваться результат.

Эта директива позволяет повысить производительность при выполнении ресурсоёмких операций (например, при взаимодействии с внешними API), поскольку мы можем кэшировать и повторно использовать их ответ.

Пример

@strTranslate подключается к API Google Translate. Используя @cache(time: 10), переведённое значение поля title будет кэшироваться в течение 10 секунд, и повторное выполнение того же запроса в этот период позволит избежать обращения к Google Translate, что обеспечит очень быстрое разрешение.

query {
  posts(pagination:{ limit: 3 }) {
    id
    title
      @strTranslate(from: "en", to: "es")
      @cache(time: 10)
  }
}