【问题标题】:dynamic query graphql apollo with java用java动态查询graphql apollo
【发布时间】:2019-01-07 13:52:05
【问题描述】:

使用graphql apollo的常规是添加文件查询.graphql

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

示例查询:

一个:

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

两个:

只需请求全名

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

    }
  }
}

事实上,我想用 Java

获得动态查询

有可能吗?

【问题讨论】:

  • 截至今天,我认为不可能。

标签: java android graphql apollo-client


【解决方案1】:

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

      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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 2018-10-19
    • 2021-07-04
    • 2017-07-21
    • 2020-10-01
    • 2018-03-02
    • 2021-07-04
    • 2018-02-10
    相关资源
    最近更新 更多