我刚刚开始学习android中的GraphQl api。我现在面临的问题是,我不知道该api的工作方式。我从link-:以下引用
要求下载api的架构文件的地方。
有什么方法可以在任何类型的控制台中运行schema.json文件,通过它我可以了解如何将其工作以获取正确的数据。
谢谢
以下是iam使用的以下代码-
val BASE_URL="https://api.github.com/graphql"
fun getClient(): ApolloClient {
val okHttp = OkHttpClient
.Builder()
.addInterceptor({ chain ->
val original = chain.request()
val builder = original.newBuilder().method(original.method(),
original.body())
builder.addHeader("Authorization"
, "Bearer " + "bac8dc6fd2119fcdbe94332c3e1aa2c43f897b24")
chain.proceed(builder.build())
})
.build()
return ApolloClient.builder()
.serverUrl(BASE_URL)
.okHttpClient(okHttp)
.build()
}
}
以及用于致电服务...
progress_bar.visibility = View.VISIBLE
client.getClient().query(FindQuery
.builder()
.name(repo_name_edittext.text.toString())
.owner(owner_name_edittext.text.toString())
.build())
.enqueue(object : ApolloCall.Callback<FindQuery.Data>() {
override fun onFailure(e: ApolloException) {
Log.d("exception ",e.message.toString())
progress_bar.visibility = View.GONE
}
override fun onResponse(response: Response<FindQuery.Data>) {
Log.d(" " + response.data()?.repository(),"")
runOnUiThread {
progress_bar.visibility = View.GONE
name_text_view.text = String.format(getString(R.string.name_text),
response.data()?.repository()?.name())
description_text_view.text = String.format(getString(R.string.description_text),
response.data()?.repository()?.description())
forks_text_view.text = String.format(getString(R.string.fork_count_text),
response.data()?.repository()?.forkCount().toString())
url_text_view.text = String.format(getString(R.string.url_count_text),
response.data()?.repository()?.url().toString())
}
}
})
}
}
Graphql文件已使用-:
user(login: $login) {
repositories(first:20){
nodes{
id
name
}
}
}
}
成绩文件
implementation 'com.apollographql.apollo:apollo-runtime:1.2.0'
implementation "com.apollographql.apollo:apollo-android-support:1.2.0"
答案 0 :(得分:0)
您需要为Android安装graphql代码生成器,因为在您的帖子中我看不到您在哪里或实际上配置了生成器。 Tutorial for the code generation setup on android。
只需按照本教程进行操作,如果您对本教程不清楚,可以随时查看使用相同技术的angular或react教程,只是一瞥。
我假设您想要前端的后端,以具有graphql智能感知,typesaftey等。
答案 1 :(得分:0)
要能够使用API,您的项目必须具有 schema.json 文件,其中包含API的变异,查询和数据类型。 因此,您必须下载schema.json文件,从终端或android studio本身有两种方法。
用于从终端下载架构(使用apollo命令行工具)
阿波罗模式:下载--endpoint = your_api_url schema.json
用于从android studio本身下载架构 您必须安装JS GraphQL plugin才能下载scehma.json文件
有关详细信息,请参见如何在您的项目here中设置阿波罗