如何从json文件运行graphql查询

时间:2019-10-05 20:40:17

标签: android node.js kotlin graphql

我刚刚开始学习android中的GraphQl api。我现在面临的问题是,我不知道该api的工作方式。我从link-:以下引用

https://www.contentstack.com/docs/guide/contentstack-graphql-api/using-graphql-with-apollo-client-android-sdk

要求下载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"

2 个答案:

答案 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中设置阿波罗