【问题标题】:How to run graphql queries from a json file如何从 json 文件运行 graphql 查询
【发布时间】:2019-10-20 18:40:29
【问题描述】:

我刚刚开始学习android中的GraphQl api。我现在面临的问题是,我不知道这个api是如何工作的。我有以下链接的参考:

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

它要求下载你的 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


    【解决方案1】:

    您需要为 android 安装 graphql 代码生成器,因为在您的帖子中,我看不到您实际配置生成器的位置或实际配置。 Tutorial for the code generation setup on android.

    跟着教程看就行了,如果不清楚,可以随时查看使用相同技术的angular或react教程,一睹为快。

    我假设您希望在前端有一个后端,拥有 graphql intellisense、typesaftey 等。

    【讨论】:

      【解决方案2】:

      要启用使用 API,您的项目必须具有 schema.json 文件,其中包含 API 的突变、查询和数据类型。 所以你必须下载你的schema.json文件,有两种方式从终端或android studio本身。

      • 用于从终端下载架构(使用 apollo 命令行工具)

        apollo 架构:下载 --endpoint=your_api_url schema.json

      • 用于从 android studio 本身下载架构 您必须安装JS GraphQL plugin 才能下载 scehma.json 文件

      有关如何在您的项目中设置 apollo 的更多信息here 是详细步骤

      【讨论】:

        猜你喜欢
        • 2018-02-18
        • 2019-12-21
        • 1970-01-01
        • 2020-12-13
        • 1970-01-01
        • 2021-04-14
        • 2016-11-30
        • 2019-06-27
        • 1970-01-01
        相关资源
        最近更新 更多