Код: Выделить всё
namespace strawberry_shake_graphql_client
{
internal class Program
{
static IServiceCollection serviceCollection = new ServiceCollection();
static IServiceProvider serviceProvider;
static IStrawberryShakeGraphQLClient client;
static async Task Main(string[] args)
{
serviceCollection
.AddStrawberryShakeGraphQLClient(StrawberryShake.ExecutionStrategy.CacheAndNetwork)
.ConfigureHttpClient(c => c.BaseAddress = new Uri("https://localhost:7148/graphql/"));
serviceProvider = serviceCollection.BuildServiceProvider();
client = serviceProvider.GetRequiredService();
while(Console.ReadLine() != string.Empty)
{
await GetBooks();
}
}
static async Task GetBooks()
{
IOperationResult result = await client.Getbooks.ExecuteAsync();
if (result.IsErrorResult())
{
Console.WriteLine("ExecuteAsync() failed!");
return;
}
foreach (var book in result.Data.BooksList)
{
Console.WriteLine(book.Title);
}
}
}
}
В соответствии с этим https://chillicream.com/docs/strawberry ... 13/caching я ожидаю, что мой клиент продолжит нормально работать и будет предоставлять данные из локального кеша/репозитория, когда служба HotChocolate остановлена или недоступна.
Вместо предоставления данных из локального кэша я получаю HttpRequestExeption, когда мой клиент выполняет запрос GetBooks с помощью автономной службы HotChocolate.
В примере кода чего-то не хватает? мои ожидания неверны?
Может ли кто-нибудь предоставить мне пример кода, как заставить мой клиент работать так, как ожидалось выше?
Подробнее здесь: https://stackoverflow.com/questions/755 ... n-strategy