1.引入jar包版本注意用1.2以上的,1.1没有addObjectParameter方法,对json报文格式处理有欠缺。
org.mountcloud
graphql-client
1.2
2.返回的数据格式为map,建议使用阿里大佬开源的fastjson包解析。
private final String url = "http:xxxxx";
private final String token = "Bearer xxxxxxxxxxx";
public Object queryData() {
GraphqlClient client = GraphqlClient.buildGraphqlClient(url);
// 设置 http header
Map httpHeaders = new HashMap<>();
httpHeaders.put("Authorization",token);
httpHeaders.put("Content-Type","application/json");
client.setHttpHeaders(httpHeaders);
// 设置请求内容
GraphqlQuery query = new DefaultGraphqlQuery("getTransData");//getTransData 这个是graphql定义的方法名
// 设置请求对象的值
RequestObject request = new RequestObject();
request.setXxxx("xxx");
query.getRequestParameter().addObjectParameter("graphqlRequest",request);//graphqlRequest 是graphql定义的方法getTransData 的参数
// 设置返回接收格式
ResultAttributtes buttes = new ResultAttributtes("statsLineData");
buttes.addResultAttributes("a1","a2","a3","a4");
query.addResultAttributes(buttes);
// 发起请求
try {
GraphqlResponse response = client.doQuery(query);
// 此处对response处理,返回业务想要的数据吧
...
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
仿照参考文献中大佬的写法,对应的graphql语句为
query{
getTransData(graphqlRequest: request){
statsLineData {
a1
a2
a3
a4
}
}
}