Jira API 创建 Issue 时如何指定自定义字段?
我用 Jira 的 REST API 创建 Issue,普通字段比如 summary、issuetype 都能正常传,但一加自定义字段就报错。官方文档说要用 customfield_xxx 的格式,但我试了还是不行。
比如我的自定义字段 ID 是 customfield_10056,类型是单选列表,我这样传:
{
"fields": {
"project": { "key": "PROJ" },
"summary": "测试任务",
"issuetype": { "name": "Task" },
"customfield_10056": { "value": "选项A" }
}
}
结果返回 400 错误,说“字段值无效”。是不是格式不对?还是得用 ID 而不是 value?
{"value": "选项A"}格式本身是对的,但 Jira 报错说字段值无效,意思是“选项A”这个值在那个自定义字段里根本不存在。可能是拼写不对,或者选项在 Jira 后台已经被改过了。解决方法:
先调一下接口确认这个字段到底有哪些有效选项:
返回结果里找到
customfield_10056那个字段,看它的allowedValues数组,里面列的就是真正能传的值。另外提醒一点,单选列表字段有些情况下得用
id而不是value>,格式变成这样:
具体用哪个,看你从上面那个接口拿到的
allowedValues里的数据结构,它给你返回的是 id 还是 value,你就用哪个。还有个小坑:Jira Cloud 和 Jira Server/Data Center 对自定义字段的格式处理不太一样,如果你用的是 Cloud 版本,有些字段可能必须走
optionId那种嵌套结构。实在不行就用 id 传,先调个接口查下这个字段的可选值:
然后改成这样传:
还有个坑,确认这个自定义字段已经加到项目对应的 Field Configuration 里了,不然 API 直接报无效。