【发布时间】:2019-10-20 18:40:29
【问题描述】:
我刚刚开始学习android中的GraphQl api。我现在面临的问题是,我不知道这个api是如何工作的。我有以下链接的参考:
它要求下载你的 api 的架构文件。
有什么方法可以让我在任何类型的控制台中运行我的 schema.json 文件,我可以通过它了解这将如何工作以获取正确的数据。
谢谢
下面是我正在使用的代码--
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
}
}
}
}
Gradle 文件
implementation 'com.apollographql.apollo:apollo-runtime:1.2.0'
implementation "com.apollographql.apollo:apollo-android-support:1.2.0"
【问题讨论】:
标签: android node.js kotlin graphql