私は GraphQL を初めて使用するので、自分のプロジェクトを開始する前に何かをテストしたいと考えています。テスト データベースとして、アプリケーションのライブラリとしてPrismaテスト データベースとサービス、およびApollo Androidを使用しています。query
とでほぼ完了ですmutation
。次はで何かやりたいなsubscription
。したがって、私のgraphqlサブスクリプションは次のようになります。
subscription observer {
post {
mutation
node {
id
title
text
isPublished
}
}
}
Apollo Android ライブラリは、私の graphql コードに基づいていくつかのクラスを生成するため、次のobserver
ようにサブスクリプションを使用しようとしました。
Interceptor interceptor = chain -> chain.proceed(chain.request());
OkHttpClient ohc = new OkHttpClient.Builder().addInterceptor(interceptor).build();
ApolloClient mApolloClient = ApolloClient.builder().serverUrl(ENDPOINT).okHttpClient(ohc).build();
mApolloClient.subscribe(ObserverSubscription.builder().build()).execute(new ApolloSubscriptionCall.Callback<ObserverSubscription.Data>() {
@Override
public void onResponse(@NotNull Response<ObserverSubscription.Data> response) {
// do work here
}
@Override
public void onFailure(@NotNull ApolloException e) {
// catch exception
}
@Override
public void onCompleted() {
// some other stuff goes here
}
});
このコードを実行すると、例外がスローされます。
java.lang.IllegalStateException: サブスクリプション マネージャーが構成されていません
このメッセージはhereから来ており、これに直接関係しています。
私の質問は、Android アプリで apollo-android を使用してサブスクリプションを使用する方法はありますか?