使用JIRA SOAP API获取jira问题的customfield值

时间:2012-10-05 10:51:53

标签: soap jira

我想使用SOAP API获取特定JIRA问题的所有自定义字段的值。我有一个名为'阶段'的自定义字段,其值为决策待决,用于JIRA问题 JIRA-123

我正在使用JIRA 5.1.3

除了上述问题的自定义字段的值之外,我能够使用SOAP API获取JIRA问题的所有属性。

我尝试了以下代码,但我无法在代码中使用 ComponentManager

IssueManager issueManager = ComponentManager.getInstance().getIssueManager();
CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager();
Issue issue = issueManager.getIssueObject("JIRA-123");
CustomField customField = customFieldManager.getCustomFieldObjectByName("Phase");
Object customFieldValue = issue.getCustomFieldValue(customField);

如果有人能提供正确的方法,我将非常感激。

2 个答案:

答案 0 :(得分:2)

5.1.3不推荐使用SOAP API。我建议你使用REST API - 它更易于使用和实现。

什么是REST?: read here。基本思想是将HTTP请求类型绑定到操作,这很明显 - 请检查this table以便快速查看。

Jira有一个强大的REST API,您可以使用它。这是当前版本的the main documentation

在某些高级步骤中您需要做什么?:

  1. 使用您的JIRA实例设置某种类型的身份验证。是的:

  2. 通过API获取所有字段的列表:

    /rest/api/2/field' [method returns a list of all fields][6] - both System and Custom. Then when you identify the exact field use / rest / api / 2 / customFieldOption / {id}`获取自定义字段选项的the full
    representation

  3. 我建议您使用Chrome REST Console之类的工具,或者您可以轻松提出请求的类似工具,以了解API。奖励是如果您通过同一浏览器登录,则无需设置验证。您的用户需要完全管理员权限。

    这是root of all JIRA REST API文档。看看这个。

    如果您在PHP中这样做,我个人建议使用某种类型的库。我用过 Guzzle(在CakePHP环境中)完成了这个确切的任务,结果非常好。

答案 1 :(得分:1)

我不确定你如何使用soap API,这里是通过PHP-SOAP使用它的例子:

#!/usr/bin/php -q
<?php
   $soapClient = new SoapClient("https://jira.com/rpc/soap/jirasoapservice-v2?wsdl");
   $token = $soapClient->login('user', 'password');
   $myIssue = $soapClient->getIssue($token,"TES-13");
   print_r($myIssue); // all of the issue details
   print_r($myIssue->customFieldValues); // get all custom fields
   foreach ($myIssue->customFieldValues as $customFieldValue) {
        // search for the right custom field
        if ($customFieldValue->customfieldId == 'customfield_10402') {
                echo $customFieldValue->values[0];
                die();
        }
   }
?>

如果您想使用任何其他API,请查看JIRA Remote API Reference

关于REST和SOAP API的评论 - 从Jira的网站引用SOAP API“支持但没有未来的开发”。 Rest API仍然有点新,你可以用REST API(example)做些事情,并且可以使用SOAP API轻松完成。