Кэширование разрешения полей
Добавление директивы @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)
}
}