我使用GraphQL来同步aws中的数据,dynamoDB中使用AppSync。
但是现在我需要存储从GraphQL API中获得的数据。
我发现,可以使用阿波罗客户机将这些数据存储在缓存中,以便能够在脱机模式下使用这些数据。
下面是我使用GraphQL的代码:
amazonAppSyncClient = new AmazonAppSyncClient ("ACCESS_KEY_ID", "SECRET_ACCESS_KEY", REGION);
graphQLClient = new GraphQLClient ("https://6vl6q5h2c5bxrbmlimiia5hldy.appsync-api.us-west-2.amazonaws.com/graphql",
new GraphQLClientOptions {
HttpMessageHandler = new AWS4SignerMessageHandler (
amazonAppSyncClient,
"ACCESS_KEY_ID",
"SECRET_ACCESS_KEY")
});
public async Task<List<Book>> GetAllBooks () {
var graphQLResponse = await graphQLClient.PostQueryAsync (@"query getBooks {
listBooks {
items {
Id
Title
ISBN
Price
PageCount
Author}}}");
var json = graphQLResponse.Data;
var value = json.GetValue ("listBooks").GetValue ("items");
List<Book> books = value.ToObject<List<Book>> ();
return books;
}我在这里使用了以下代码:https://gist.github.com/NeilBostrom/cab8b9275e39bb90ecf8e06ab980664b
如何使用阿波罗在本地保存返回的数据?
发布于 2019-10-31 13:23:43
如果您想使用AppSync/阿波罗和Xamarin在移动平台上实现适当的离线缓存,那么您需要做大量的工作。首先,阿波罗是安卓和iOS的最初缓存iOS客户端,亚马逊AppSync SDK库就是基于这些。他们只是在上面构建了一些特定于亚马逊的功能。
问题是,尽管iOS和Android都存在库,但它们不能像Xamarin那样使用,需要创建一个单独的绑定项目,以便您可以在特定于Xamarin的C#代码中调用库。
下面是你需要做的事情:
编辑:如果上面看起来工作太多,可以考虑其他选项:

https://aws-amplify.github.io/docs/android/api
https://stackoverflow.com/questions/58643030
复制相似问题