是否可以直接与Confluence通信,从自定义Jira插件中搜索/添加页面到空间等?
我目前正在使用一个Jira插件,它在问题查看器中显示一个面板但想要在汇合中搜索特定页面以显示它的链接(如果存在)。如果它不存在,我想有一个允许用户创建该页面的按钮。
我看过REST API,它看起来应该做我想要的,但我可以直接使用JAVA类进行交互吗?
它们之间的单点登录是否允许我在JIRA的汇合下调用REST服务而不将身份验证放入REST调用中?
简而言之:
我看过REST API,它看起来应该做我想要的,但我可以直接使用JAVA类进行交互吗?
没有。没有简单的java api可用:
ConfluenceService.searchPage(String title)
ConfluenceService.createPage(String parent, String title)
它们之间的单点登录是否允许我在JIRA的汇合下调用REST服务而不将身份验证放入REST调用中?
是。
更详细:
你可以使用的java api是Application Link api和SAL api,特别是来自com.atlassian.sal.api.net包的Request和Response。
它归结为您首先在JIRA中将应用程序链接配置到Confluence实例。然后从您的自定义插件中,使用应用程序链接api来检索ApplicationLink实例,例如:
ApplicationLink confluenceLink = applicationLinkService.getPrimaryApplicationLink(ConfluenceApplicationType.class)
之后,您可以使用此confluencelink获取requestFactory:
ApplicationLinkRequestFactory requestFactory = confluenceLink.createAuthenticatedRequestFactory();
requestFactory可以轻松地向Confluence发送REST请求并处理响应。它还使用JIRA中应用程序链接的配置来处理身份验证。
有关更详细的示例,包括搜索Confluence页面,请检查this tutorial。
根据您要完成的任务,查看Structure和Structure Pages附加组件也可能值得。他们的目标是更紧密地集成JIRA和Confluence,并提供用户友好的方式在JIRA中的结构中显示Confluence页面,并在JIRA中编辑这些页面。
Jira有一种叫做JRJC的东西:https://marketplace.atlassian.com/plugins/com.atlassian.jira.jira-rest-java-client/server/overview
Atlassian并未积极支持这一点,但它可能会满足您的需求。
但是,我建议您使用Jersey或其他任何东西,而不是仅仅使用REST API,而不是将自己局限于JRJC
我很幸运,Jira和Confluence使用REST API,jq和bash脚本相互交互。
这是我写的关于它的博客,其中包含源的github位置。 https://javamemento.blogspot.no/2016/05/jira-confluence-3.html
该脚本是bash,但它可能会让你深入了解如何从java中使用它。但是,我没有使用搜索页面的汇合。
至于你的上一个问题,不,你需要为每个REST调用提供身份验证。