知海

Java/Android:Apollo Android(客户端)

graphql-github-io-zh-Hans生态项目与库

Java/Android:Apollo Android(客户端)

Apollo Android 是一个面向 Android 平台的强类型、支持缓存的 GraphQL 客户端,使用 Java 编写。它帮助开发者在 Android 应用中轻松接入 GraphQL API,并利用编译时验证提升类型安全性与开发效率。

核心特性

  • 强类型查询:通过代码生成机制,将 GraphQL 查询映射为类型安全的 Java/Kotlin 模型,减少运行时错误。
  • 内置缓存:支持规范化缓存(Normalized Cache),可自动合并和更新已获取的数据,优化离线体验与请求效率。
  • Java 原生支持:以 Java 为底层实现,同时兼顾 Kotlin 生态,便于在 Android 项目中集成。
  • 灵活的协议支持:兼容 GraphQL 标准特性,支持查询、变更(Mutation)和订阅(Subscription)。
  • 与 Android 架构深度集成:提供协程、RxJava 和 LiveData 等异步支持,方便与 Jetpack 组件搭配使用。

快速开始

在项目的 build.gradle 中添加依赖:

groovy 复制代码
dependencies {
    implementation 'com.apollographql.apollo:apollo-runtime:3.8.2'
    // 可选:如使用 RxJava 或协程,可添加对应适配器
    implementation 'com.apollographql.apollo:apollo-coroutines-support:3.8.2'
}

配置 GraphQL 插件(使用 Android Gradle Plugin 时):

groovy 复制代码
apply plugin: 'com.apollographql.apollo'

放入 .graphql 文件后,Apollo 会自动生成对应的 Java/Kotlin 类型。随后即可创建客户端并执行查询:

java 复制代码
ApolloClient client = ApolloClient.builder()
        .serverUrl("https://example.com/graphql")
        .build();

GetUserQuery query = GetUserQuery.builder()
        .userId("123")
        .build();

client.query(query)
        .enqueue(new ApolloCall.Callback<GetUserQuery.Data>() {
            @Override
            public void onResponse(@NotNull Response<GetUserQuery.Data> response) {
                // 处理响应
            }

            @Override
            public void onFailure(@NotNull ApolloException e) {
                // 处理错误
            }
        });

资源

Apollo Android 是构建现代 Android 应用时连接 GraphQL 后端的高效选择,尤其适合需要严格类型约束和复杂数据缓存的场景。

帮助我们改进文档

发现翻译问题或内容错误?请告诉我们。