介绍就不多说了,直接上代码吧,实际运用中遇到的
1.可以用postman测试,核对你代码查询结果
2.导入jar包
<!-- https://mvnrepository.com/artifact/org.mountcloud/graphql-client -->
<dependency>
<groupId>org.mountcloud</groupId>
<artifactId>graphql-client</artifactId>
<version>1.2</version>
</dependency>
3.后端查询,代码部分参数如图所示
例1
String serverUrl = "http://localhost:8082/graphql";
GraphqlClient graphqlClient = GraphqlClient.buildGraphqlClient(serverUrl);
String queryMethodName = "findOneAuthor ";
GraphqlQuery query = new DefaultGraphqlQuery(queryMethodName);
query.addParameter("id",1);
query.addResultAttributes("firstName","lastName");
GraphqlResponse response = graphqlClient.doQuery(query);
//获取数据,数据为map类型
Map result = response.getData();
........
例2
public static void graphQLQuery(){
String serverUrl = "http://localhost:8082/graphql";
GraphqlClient graphqlClient = GraphqlClient.buildGraphqlClient(serverUrl);
String queryMethodName = "findAuthorsByFilter";
GraphqlQuery query = new DefaultGraphqlQuery(queryMethodName);
//数组里面可以是具体的某个对象(比如User对象),也可是是Map,但是里面包含的key值,需要与接口方式里面能接收的参数对应,如下所示
List<Map<String,Object>> filterList = new ArrayList<>();
Map<String,Object> map1 =new HashMap<>();
map1.put("firstName","Jim");//User.firstName = Jim
map1.put("lastName","Green");//User.lastName= Green
filterList.add(map1);
//此步骤要注意,如果入参非基本类型,建议使用addObjectParameter方式,
// 很奇怪,不能直接query.addObjectParameter(...),需要放在非第一个参数位置
// 疑问,要是没有其他参数,这个方法不就是不能使用了 ??有时间了研究一下
query.addParameter("first",3).addObjectParameter("filter",filterList);
query.addResultAttributes("firstName","lastName");
try {
//执行query
GraphqlResponse response = graphqlClient.doQuery(query);
//获取数据,数据为map类型
Map result = response.getData();
Map m2 = (Map)result.get("data");
List<Map> findAllAuthors = (List<Map>)m2.get(queryMethodName);
for (Map map:findAllAuthors){
System.out.println(map.get("firstName").toString()+"----" +map.get("lastName").toString());
}
} catch (IOException e) {
e.printStackTrace();
}
}
参照
https://my.oschina.net/genghz/blog/1789240?from=groupmessage
https://blog.csdn.net/zhanghaishan/article/details/79845594