2

私は 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 を使用してサブスクリプションを使用する方法はありますか?

4

1 に答える 1