Ответ на запрос AWS AppSync не содержит никаких данных. (Использование Amplify в приложении для Android) - PullRequest
0 голосов
/ 23 октября 2019

(я новичок) Я пытаюсь выполнить запрос AppSync из моего приложения для Android с помощью Amplify. Я следую инструкциям, приведенным на этой странице: 1002 * -amplify.github.io / docs / android / api # run-a-query После выполнения следующего кода

  public void query(){
        mAWSAppSyncClient.query(ListTodosQuery.builder().build())
                .responseFetcher(AppSyncResponseFetchers.CACHE_AND_NETWORK)
                .enqueue(todosCallback);
    } 

Предполагается, что ответ GraphQL Callback будет выглядеть следующим образом:

{
  "data": {
    "listTodos": {
      "items": [
        {
          "id" : ...
        }]}}}

Но я продолжаю получать ответ как:

com.apollographql.apollo.api.Response@df0e853

У него нет никаких других данных. Почему это так? Почему ответ в этом формате?

(я попытался выполнить запрос listTodos в консоли AppSync, и я получил правильный ответ там с данными и всеми элементами в DynamoDB)

1 Ответ

1 голос
/ 23 октября 2019

com.apollographql.apollo.api.Response@df0e853 является экземпляром объекта ответа. Вы должны быть в состоянии получить доступ к response.data():

    private GraphQLCall.Callback<ListTodosQuery.Data> todosCallback = new GraphQLCall.Callback<ListTodosQuery.Data>() {
        @Override
        public void onResponse(@Nonnull Response<ListTodosQuery.Data> response) {
            Log.i("Results", response.data().listTodos().items().toString());
            // do something with response.data() here
        }
        // ...
    };
    ```
...