程序猿日常
记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 需配置proguard
packageName.set("com.lang.rocketreserver")
}
}
使用
1.需要在对应的module的main文件夹下需要存在graphql文件夹,以及packageName配置的包名结构,文件夹中需存在schema.graphqls
schema.graphqls文件从哪里来?
两种办法:1.目录结构自己构建,将schema.graphqls下载后放进对应文件夹中;2.通过命令自动生成目录结构和schema.graphqls文件
命令自动生成
1.打开测试的graphql服务官网提供的graphql服务
2.复制接口地址
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) {
id
isBooked
mission {
missionPatch
name
}
rocket {
id
name
type
}
site
}
}
优点
1.不用一个一个写接口地址
2.不用一个一个建立bean
3.可以快速和后台接口同步
4.使用简单方便
缺点
。。。。。。