AWSAppSyncClient не обнаруживает запросы graphql - PullRequest
0 голосов
/ 04 января 2019

enter image description here Я использую AWS AppSync в своем приложении для Android и следую этой ссылке, но я уже создал API в моей AppSync, который я хочу импортировать в мой Android приложение. Я связываю приложение, используя Amplify.

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Хорошо. Оказывается, что запросы в AppSync были созданы разработчиком, который не был знаком с соглашениями об именах, он добавил "_" ( подчеркивание ) в запросах и когда эти запросыобработанный Amplify, он удаляет все _ только из type, mutation и query имен, но не из методов внутри них.Например,

type Query {
  getDaily_Build(id: ID!): Daily_Build
}

в AppSync создает следующий запрос в queries.graphql в Android

query GetDailyBuild($id: ID!) {
  getDaily_Build(id: $id) {
    id
    username
    title
  }
}

, и это выдает ошибку

Проверка GraphQLНе удалось запросить документ.

Я изменил схему, следуя соглашениям об именах, и избежал использования специальных символов, таких как "_", и теперь она отлично работает.

0 голосов
/ 04 января 2019

Вы настроили все необходимые плагины и библиотеки в файле Gradle ..

apply plugin: 'com.amazonaws.appsync'

implementation 'com.amazonaws:aws-android-sdk-appsync:2.6.+'
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.0'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'

и в манифесте вам необходимо иметь следующие разрешения.

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

и в вашем теге приложения должна быть указана следующая служба.

 <service android:name="org.eclipse.paho.android.service.MqttService" />
...