用java动态查询graphql apollo [英] dynamic query graphql apollo with java

查看:68
本文介绍了用java动态查询graphql apollo的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用graphql apollo的例程是添加文件查询.graphql

我会用 java 创建动态查询,我不会为每个查询创建文件

示例查询:

一:

query EntryDetailQuery($repoFullName: String!) {条目(repoFullName:$repoFullName){ID存储库{全名描述所有者 {登录}}发布者{登录}}}

二:

只要求全名

query EntryDetailQuery($repoFullName: String!) {条目(repoFullName:$repoFullName){ID存储库{全名}}}

<块引用>

事实上,我想用 Java

获得动态查询

有可能吗?

解决方案

可以通过 Apollo 和 Java 使用动态查询.使用graphql查询构建相应的java文件后,只需在查询中使用setter提供动态参数并将查询提供给回调即可.

 EntryDetailQuery productListQuery = EntryDetailQuery.builder().repoFullName("test_repo").build();ApolloCall.Callbackcallback = new ApolloCall.Callback() {@覆盖public void onResponse(@Nonnull Response response) {logger.debug("来自graphql的响应:" + response);}@覆盖public void onFailure(@Nonnull ApolloException e) {logger.error("从graphql获取响应时出错:" + e.getMessage());}};apolloGraphQlClient.getApolloClient().query(productListQuery).enqueue(callback);

The routine of working with the graphql apollo is that add file query .graphql

i would create dynamic query with java and i do not create file for each query

example querys :

one :

query EntryDetailQuery($repoFullName: String!) {
  entry(repoFullName: $repoFullName) {
    id
    repository {
      full_name
      description
      owner {
          login
      }
    }
    postedBy {
      login
    }
  }
}

two :

just request full_name

query EntryDetailQuery($repoFullName: String!) {
  entry(repoFullName: $repoFullName) {
    id
    repository {
      full_name

    }
  }
}

in fact, i would to get dynamic querys with Java

is it possible?

解决方案

It is possible to use dynamic queries with Apollo and Java. After building the corresponding java files using graphql queries, just provide the dynamic parameters in the query using setter and provide the query to the callback.

      EntryDetailQuery productListQuery = EntryDetailQuery.builder().repoFullName("test_repo").build();

      ApolloCall.Callback<EntryDetailQuery.Data> callback = new ApolloCall.Callback<EntryDetailQuery.Data>() {

        @Override
        public void onResponse(@Nonnull Response<EntryDetailQuery.Data> response) {
            logger.debug("Response from graphql:" + response);
        }

        @Override
        public void onFailure(@Nonnull ApolloException e) {
            logger.error("Error in getting response from graphql:" + e.getMessage());
        }
    };

    apolloGraphQlClient.getApolloClient().query(productListQuery).enqueue(callback);

这篇关于用java动态查询graphql apollo的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆