title |
---|
Using with Java |
This article describes how to use Apollo Kotlin in Java projects.
Apollo Kotlin generates Kotlin code by default, but you can configure it to use the Java codegen instead:
apollo {
service("service") {
generateKotlinModels.set(false)
}
}
This snippet demonstrates initializing an ApolloClient
instance in Java:
import com.apollographql.apollo3.cache.normalized.NormalizedCache;
import com.apollographql.apollo3.cache.http.HttpCache;
// (...)
ApolloClient.Builder builder = new ApolloClient.Builder()
.serverUrl("http://localhost:4000/graphql")
// Optionally, set an http cache
HttpCache.configureApolloClientBuilder(builder, cacheDirectory, cacheMaxSize);
// Optionally, set a normalized cache
NormalizedCache.configureApolloClientBuilder(
builder,
new MemoryCacheFactory(10 * 1024 * 1024, -1),
TypePolicyCacheKeyGenerator.INSTANCE,
FieldPolicyCacheResolver.INSTANCE,
false
);
ApolloClient client = builder.build();
Apollo Kotlin has a coroutines / Flow-based API that isn't well suited to using with Java. To achieve a similar effect, you can use Apollo's RxJava extensions.