> 文章列表 > Android引入Apollo(阿波罗)

Android引入Apollo(阿波罗)

Android引入Apollo(阿波罗)

程序猿日常

记Android项目引入Apollo(阿波罗)

上源码

apollo开发分支

应用

Apollo(阿波罗)客户端会管理好应用的后台GraphQL数据

之前网络请求使用Retrofit+OkHttp
改成使用Apollo+OkHttp

引入

1.对应的module的build.gradle中添加
id("com.apollographql.apollo3").version("3.8.0")
2.对应的module的build.gradle中添加配置

packageName 指定apollo文件目录以及自动生成类的包名

apollo {service("service") {// 修改packageName 需配置proguardpackageName.set("com.lang.rocketreserver")}
}

使用

1.需要在对应的module的main文件夹下需要存在graphql文件夹,以及packageName配置的包名结构,文件夹中需存在schema.graphqls

Android引入Apollo(阿波罗)

schema.graphqls文件从哪里来?
两种办法:1.目录结构自己构建,将schema.graphqls下载后放进对应文件夹中;2.通过命令自动生成目录结构和schema.graphqls文件

命令自动生成

1.打开测试的graphql服务官网提供的graphql服务
2.复制接口地址
Android引入Apollo(阿波罗)
3.使用命令
./gradlew :对应的module名称:downloadApolloSchema --endpoint=接口地址 --schema=对应的module名称/src/main/graphql/apollo配置的包名/schema.graphqls

./gradlew :AndlangApollo:downloadApolloSchema --endpoint='https://apollo-fullstack-tutorial.herokuapp.com/graphql' --schema=AndlangApollo/src/main/graphql/com/lang/rocketreserver/schema.graphqls

注意:需要java11环境运行该命令,需要对应的modlue名称
4.查询与修改需要编写graphql文件 编写语法这里不赘述了,如下查询例子:

query Query($launchId: ID!) {launch(id: $launchId) {idisBookedmission {missionPatchname}rocket {idnametype}site}
}

优点

1.不用一个一个写接口地址
2.不用一个一个建立bean
3.可以快速和后台接口同步
4.使用简单方便

缺点

。。。。。。

零食排行榜