公司内部使用jira作项目管理,我接到新的需求,要在测试报告上获取jira的所有项目,再根据项目获取board看板,再根据看板获取Sprint,最后获取未完成的bug信息。效果如下:
第一次接入jira,网上很多人使用jira-rest-java-client-api(5.1.6),在编写demo的过程中,发现并不能满足我的需求——没有对查询board和sprint的支持
查看jira-rest-java-client-api的代码,流程如下(例子是查询jira的所有project):
1、JiraRestClientFactory.createWithBasicHttpAuthentication(URI serverUri, String username, String password)获取AsynchronousJiraRestClient
2、JiraRestClient中有各种类型的Client(但没有对board和sprint的Client),获取项目的client:getProjectClient()
3、调用ProjectRestClient中的getAllProjects()(实现类是AsynchronousProjectRestClient)
4、使用UriBuilder.fromUri()生成一个uri,在属性里new了一个BasicProjectsJsonParser
5、使用getAndParse(URI uri, JsonParser<?, T> parser)发起请求,并在BasicProjectsJsonParser里的parse(JSONArray json)解析json成Iterable<BasicProject>对象
所以只需要参考jira-rest-java-client-api的代码,
1、实现JiraRestClientFactory
2、继承AsynchronousJiraRestClient
3、实现JsonObjectParser
4、对照api返回的参数,编写对应的模型
代码链接:https://pan.baidu.com/s/1_Yw5vI8DJWHya4NB7QFBhg
提取码:q19n