Я создаю приложение, используя ApolloClient для запроса конечной точки GraphQL. Я хочу использовать политику выборки «кеш-и-сеть» для обычных запросов, так как эта конкретная политика работает только для watchQueries. Что я действительно хочу, так это:
Если мы можем запросить сервер, мы получим ответ от сервера.
Если мы не можем запросить сервер, мы загружаем контент из кеша, если он кешируется
Это код, который я использую для создания экземпляра ApolloClient.
const defaultOptions = {
watchQuery: {
fetchPolicy: 'cache-and-network',
errorPolicy: 'ignore',
},
query: {
fetchPolicy: 'network-only',
errorPolicy: 'all',
},
mutate: {
errorPolicy: 'all'
}
}
const client = new ApolloClient({
cache: cache,
link: createUploadLink({
uri: 'http://localhost:3000/graphql',
}),
defaultOptions
});
Так что я думаю, что у меня есть два варианта: перехватить первый ответ на запрос и, если не удалось загрузить содержимое из кэша, или использовать метод watchQuery для выдачи запросов.
Я понятия не имею, как это сделать, поэтому любая помощь будет приветствоваться!