公司內部使用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
