Java动态查询graphql阿波罗

时间:2018-07-31 08:26:16

标签: java android graphql apollo-client

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

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

示例查询:

一个:

 error C2664: 'QString::toWCharArray' : cannot convert parameter 1 from 
'TCHAR [32]' to 'wchar_t *'

两个:

只请求全名

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

实际上,我会使用 Java

来获取动态查询

有可能吗?

1 个答案:

答案 0 :(得分:0)

可以在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);