Можно ли запросить кеш клиента Apollo, чтобы получить список отфильтрованных данных на клиенте?
После того, как клиент получает данные с сервера graphql, эти данные можно увидеть как находящиеся в локальном кэше из инструментов разработчика Apollo.
Как я могу получить список типов «Предметов», которые соответствуют набору «тегов», не совершая поездку на сервер?
type Item {
id: ID
text: String
tags: [String]
}
Я бы предположил, что это возможно при использовании пользовательских распознавателей Apollo-link-state, но до сих пор не смог выяснить стратегию для него или найти пример где-либо в Интернете.
Мне известно, что Apollo кеширует данные по выполненным запросам и может обращаться к ним с помощью идентификатора и .readFragment, но если данные уже существуют в клиентском кеше, должна быть возможность получить список данные для определенного условия?
Обновление:
Точное требование следующее
- Получить первые 100 результатов для getItem с сервера
- Пользователь фильтрует результаты по некоторым тегам на клиенте
- Показать отфильтрованные элементы из 100 уже выбранных записей
- FetchMore записей, чтобы соответствовать критериям фильтра с сервера, чтобы заполнить оставшуюся часть страницы до 100 элементов.
- Разрешить разбиение на страницы на основе критериев фильтра.
По мере увеличения использования у нас будет большинство элементов в кеше, обеспечивающих мгновенную фильтрацию большинства данных.
Точный вопрос: можем ли мы использовать .readFragment или .readQuery для доступа к необработанному списку записей и фильтрации на лету в клиенте (если да, то как / пример)? Или есть другой способ посмотреть на это?