springboot使用jira-rest-java-client-api整合jira,自定義對查詢board和sprint的支援
公司內部使用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返回的引數,編寫對應的模型
程式碼有點多,有需要的留言,我儘快回覆