RxJava 2 API
Setting up with an Rxified router
To handle GraphQL requests on a Rxified Route, make sure to import the GraphQLHandler class.
Working with Vert.x Rxified APIs
GraphQL-Java expects CompletionStage for asynchronous results in data fetchers and batch loaders.
Therefore, if you work with the Vert.x Rxified APIs (e.g. the Web Client or the Cassandra Client), you will have to adapt the Single and Maybe objects.
The RxJava2Jdk8Interop library provides the tooling to do just that.
Add the following to the dependencies section of your Maven build file:
<dependency>
<groupId>com.github.akarnokd</groupId>
<artifactId>rxjava2-jdk8-interop</artifactId>
<version>0.3.5</version>
</dependency>
Or if you use Gradle:
compile 'com.github.akarnokd:rxjava2-jdk8-interop:0.3.5'
Then you can create a data fetcher from a Single result:
Single<String> data = loadDataFromBackend();
DataFetcher<CompletionStage<String>> fetcher = environment -> {
return data.to(SingleInterop.get());
};
For Maybe results, use MaybeInterop.