如何通过Jira REST API的JQL获取Feature Link(Epic Link)值
解决Jira REST API获取Epic Link显示值的问题
问题分析
调用/rest/api/2/search接口时,默认返回的自定义字段(比如你的bob-1234,对应Epic Link)只会返回关联Epic的Issue ID,不会直接显示界面上的名称(如"Mars Landing")。要获取显示值,需要调整API请求参数,或者额外查询关联的Epic信息。
解决方案
方案1:单次请求获取完整Epic信息
修改搜索请求,通过fields参数指定需要的字段,同时展开关联Epic的详情:
/rest/api/2/search?jql=sprint in openSprints() AND assignee="bob"&fields=bob-1234,summary&expand=fields.bob-1234
fields=bob-1234,summary:明确返回自定义字段和当前issue的摘要expand=fields.bob-1234:展开该自定义字段的关联数据,返回Epic的完整Issue对象,其中包含summary字段(即你需要的"Mars Landing")
返回结果中,fields.bob-1234会是一个包含summary的Issue对象,示例:
{ "fields": { "bob-1234": { "id": "EPIC-123", "key": "EPIC-123", "fields": { "summary": "Mars Landing" } }, "summary": "当前Issue的摘要" } }
方案2:批量查询Epic名称(适合大量数据场景)
如果单次请求数据量过大,可分两步处理:
- 先调用搜索接口获取所有目标Issue的Epic ID:
/rest/api/2/search?jql=sprint in openSprints() AND assignee="bob"&fields=bob-1234
提取返回结果中每个fields.bob-1234.id的值,收集为一个ID列表。
- 批量查询这些Epic的摘要:
/rest/api/2/issue?ids=EPIC-123,EPIC-456&fields=summary
该接口支持一次性传入多个Issue ID(用逗号分隔),返回每个Epic的summary字段,直接提取即可填充下拉框。
注意事项
- 确保你的API账号有访问Epic Issue的权限,否则会返回权限错误
- 自定义字段ID
bob-1234是可靠的查询标识,比字段名称(如"Epic Link")更稳定,建议始终使用ID - 如果使用Jira Cloud,接口路径和参数逻辑一致,无需调整
内容的提问来源于stack exchange,提问作者StealthRT
相关产品推荐
相关产品推荐

