我的问题:我想在JIRA中引入一个新字段,其中包含来自外部REST服务的状态信息(响应是json)。
计划:每个Jira问题都有一个带有一些参考字符串的输入字段。在这个字段后面应该有一个面板,应该显示来自外部REST调用的信息(需要解析响应JSON)。
有人可以给我一些好的信息页面,如何告诉JIRA调用外部REST服务?
答案 0 :(得分:2)
如果您不想构建它,请参阅:
如果您想自己构建它,那么请先阅读Creating a custom field type上的本教程,该教程或多或少地在数据库中存储基本的String。 (这将是参考字符串)
您有两个选项,第一个是在JiraCustomField
类中覆盖getVelocityParameters
取自How to call a java method from velocity Atlassian Answers问题。
然后创建一个方法(fetchValueFromWebService(String val)
),您将调用该方法将包含基于将从速度模板传入的字段值查询REST服务的代码。 (例如$instance.fetchValueFromWebService($value)
)
要执行实际的Web服务调用,您可以使用任何所需的库,只需查看Managing Dependencies文档即可将其包含在插件中。 (例如使用Jira Jersey版本see this)
您的另一个选择是在view-basictext.vm
内使用javascript并通过调用您自己的JS文件中的函数并将其转储到您定义的范围中来对Web服务执行AJAX :(请参阅Including Javascript and CSS resources)
<span id="webServiceValue"></span>
<script type="text/javascript">
fetchValueFromWebService($value);
</script>
如果你使用AJAX路线,你需要确保网络服务已启用Cross-origin resource sharing (CORS)
。