Jira Rest API查询仅返回50条结果,maxResults参数如何正确使用?
解决Jira REST API仅返回前50条结果的问题
嘿,我来帮你梳理下问题出在哪,以及怎么搞定它:
你的操作错误点
- 第二个请求的URL参数格式完全错误:HTTP URL规范里只能有一个起始的
?,后续所有参数必须用&分隔。你写的?maxResults=500?jql=是无效的,Jira会直接忽略第二个问号后的内容,相当于只执行了maxResults=500但没有指定JQL条件,这肯定不是你想要的结果。 - 第一个请求的参数格式是对的,但没达到预期可能有两个原因:
- 你的Jira实例可能设置了全局
maxResults上限(很多默认配置里最高允许100,而非500),超过这个值Jira会自动降到上限值。 - 如果符合条件的Jira问题总数超过了你设置的
maxResults,你需要通过分页(多次调用API、递增startAt参数)才能获取全部结果。
- 你的Jira实例可能设置了全局
正确的解决步骤
1. 先确认总结果数
先调用一次API,查看响应里的total字段,它会告诉你符合条件的问题总数:
curl -u $c_user:$c_pass -X GET -H "Content-Type: application/json" "https://jira.mysite.eu/rest/api/2/search?jql=project%20%3D%20%22My%20IT%20Project%22%20AND%20status%20%3D%20%22To%20Acceptance%22"
2. 正确的分页调用示例
假设你的Jira允许的最大maxResults是100,总结果数是200,那你需要分三次调用:
- 第一次:
startAt=0&maxResults=100 - 第二次:
startAt=100&maxResults=100 - 第三次:
startAt=200&maxResults=100(直到startAt>=total)
正确的curl命令格式(以第一次调用为例):
curl -u $c_user:$c_pass -X GET -H "Content-Type: application/json" "https://jira.mysite.eu/rest/api/2/search?jql=project%20%3D%20%22My%20IT%20Project%22%20AND%20status%20%3D%20%22To%20Acceptance%22&startAt=0&maxResults=100"
注意用双引号把整个URL括起来,避免shell转义出问题,参数之间用&分隔。
3. 检查全局配置限制
如果设置maxResults=500后还是只返回100条,大概率是Jira管理员设置了API结果上限。你可以联系管理员确认,或者先尝试设为100(很多Jira实例的默认上限)试试效果。
额外提示
如果你需要自动化获取全部结果,可以写个简单脚本(比如bash、Python),循环调用API,每次递增startAt,直到获取的结果数量小于maxResults或者startAt超过total。
内容的提问来源于stack exchange,提问作者KamilK
相关产品推荐
相关产品推荐

