[英]Atlassian JIRA gadget REST API
我编写了一个JIRA小工具,该工具会先对JIRA REST API进行AJAX调用,然后再使用数据。 创建日期,解决日期和状态来创建两个单独的数组,这些数组分别保存数据,如下所示:
var dateCreated;
dateCreated =[[<created>, <daily total>],...];
因此,如果在“ 2011-1-1”上创建了两个问题,则数组的元素块为
[ [‘2011-1-1’, 2],...]
另一个数组是:
var statusDate;
statusDate=[[<resolutiondate>, <daily total>],...]
因此,如果在“ 2011-1-1”上创建了两个问题,则数组的元素块为
[ [‘2011-1-1’, 2],...]
我使用JIRA小工具中的ajaxOptions进行AJAX调用,并且能够使用Javascript获取数据并进行数组操作,并将数据绘制为在时序图上创建和关闭的全部问题。 但是,有些项目比其他项目有更多问题,将数据加载到图表中大约需要30秒。 有了JIRA,我可以使用后端服务器脚本,该脚本可以在将数据移植到基于html的图表并加载到客户端计算机上的数据之前,在服务器端进行数组操作? 我听说过JIRA中的Velocity模板,但是我不确定这是否是解决方案之一,而且很难找到有关JIRA和Velocity模板的示例。
任何帮助表示赞赏。
提前致谢
这是JIRA(或您自己的REST服务)的使用速度模板的示例。
从UI到REST服务进行ajax调用,您将获得所需的html内容(或其他数据)。 HtmlPresentationHelper类用作html数据的包装。
您可以使用Jira集成工具调试此(或您的)REST服务: REST API浏览器 : https : //developer.atlassian.com/display/DOCS/Using+the+REST+API+Browser/
并且不要忘记添加您的Velocity模板!
@Path("/")
public class CustomRestResource
{
private String pathToTemplate = "templates/reports/timesheet-report/";
private String templateFileName = "view.vm";
@GET
@Path("someMethod")
@AnonymousAllowed
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response anyName(@QueryParam("param") String param)
{
VelocityManager vm = ComponentAccessor.getVelocityManager();
try
{
return Response.ok(new HtmlPresentationHelper(
vm.getBody(pathToTemplate, templateFileName, prepareVelocityParams(param))
)).build();
}
catch (Exception ex)
{
ex.printStackTrace();
return Response.serverError().build();
}
}
Map<String, Object> prepareVelocityParams(String x)
{
Map<String, Object> velocityParams = new HashMap<String, Object>();
velocityParams.put("someParam", x);
velocityParams.put(...);
...
return velocityParams;
}
}
@XmlRootElement
public class HtmlPresentationHelper
{
@XmlElement
private String html;
private HtmlPresentationHelper()
{
// for JAXB
}
public HtmlPresentationHelper(String html)
{
this.html = html;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.