首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从json文件运行graphql查询

问如何从json文件运行graphql查询
EN

Stack Overflow用户
提问于 2019-10-06 04:40:17
回答 2查看 1.5K关注 0票数 0

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

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

它要求下载api的模式文件。

有没有什么方法可以让我在任何类型的控制台中运行我的schema.json文件,通过它我可以理解如何获得正确的数据。

谢谢

下面是我使用的代码--

代码语言:javascript
复制
    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()
    }

}

而对于呼叫服务。

代码语言:javascript
复制
            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文件-:

代码语言:javascript
复制
  user(login: $login) {
      repositories(first:20){
        nodes{
          id
          name
        }
      }
    }
}

Gradle文件

代码语言:javascript
复制
implementation 'com.apollographql.apollo:apollo-runtime:1.2.0'
    implementation "com.apollographql.apollo:apollo-android-support:1.2.0"
EN

回答 2

Stack Overflow用户

发布于 2019-10-07 19:37:32

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

只需遵循教程,如果你对它不清楚,你可以随时查看使用相同技术的angular或react教程,只是为了一瞥它。

我假设你想在前端有一个后端,有graphql intellisense,typesaftey等等。

票数 0
EN

Stack Overflow用户

发布于 2019-10-20 18:40:30

为了能够使用应用程序接口,你的项目必须有schema.json文件,该文件保存了你的应用程序接口的突变、查询和数据类型。所以你必须下载你的schema.json文件,有两种方式从终端或者android studio本身下载。

用于从终端下载模式的

apollo schema:download -- schema.json

  • For =your_api_url从android studio本身下载schema您必须安装JS GraphQL plugin才能下载scehma.json文件

有关如何在项目中设置阿波罗的更多信息,请参阅here的详细步骤

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58252170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档