用java动态查询graphql apollo [英] dynamic query graphql apollo with java
问题描述
使用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屋!