从jira soap api迁移到jira rest api:getCustomFieldValues的问题

时间:2016-08-23 08:57:50

标签: java groovy jira jira-rest-api

我正在努力将一些代码从Jira Soap Api迁移到Jira Rest API。我有一行遗留代码,如下所示:

String estimationTypes = issue.getCustomFieldValues().find{it.customfieldId == SOME_STRING_VALUE_HERE}?.values.toString()

issue变量的类型为com.atlassian.jira.rpc.soap.beans.RemoteIssue,我正在尝试迁移它并使用新Issue接口(com.atlassian.jira.issue.Issue)的实现,所以我是寻找定义为

getCustomFieldValues()方法的等效方法
public RemoteCustomFieldValue[] getCustomFieldValues() {
        return this.customFieldValues;
    } 

但我没有找到它。 Issue接口定义了不同的Object getCustomFieldValue(CustomField customField)。那么我怎样才能使用等同于getCustomFieldValues的方法?

我想如果我有像

这样的方法

List<CustomField> getCustomFields()然后我就可以创建一个方法:类似

public List<Object> getCustomFieldValues() {
   List<Object> result = new ArrayList<>()
   List<CustomField> customFields = getCustomFields()
   for(CustomField cs: customFields) {
      result.add(issue.getCustomFieldValue(cs))
   }
   return result       
}

我的目标是尽可能减少对遗留代码的影响。在那里,我希望能够尽可能地模仿遗留代码的行为。任何帮助或指示都非常感谢。

1 个答案:

答案 0 :(得分:0)

经过大量研究和卷曲我使用过的最有趣的API之一后,我在Atlassian知识库here上找到了一些非常有用的信息。该文本的目标是多选自定义字段,但对其他类型的自定义字段也很有用。

它清楚地提到JIRA的REST API并没有提供一种方法来简单地检索多选项自定义字段可用的所有选项。因此,此处使用的方法被认为是一种解决方法。所以我们可以使用

  • 创建问题meta api(here
  • 或编辑问题meta api(here

Showing the custom field allowed values

在两个元api链接之后,来自create meta api的参数很简单,但是在编辑元api的情况下,有一个名为overrideScreenSecurity的请求参数与附加用户和直接相关从Web界面访问附加组件市场,但在我的情况下不相关,默认(假)值对我来说没问题。

从这里我可以解析json来获取值