Java使用graphql client

贡光明
2023-12-01

注意事项

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
		}
	}
}

参考文献

https://www.it610.com/article/1279995660472434688.htm

 类似资料: