Jira REST API获取全量用户数据 接口仅返回50条如何处理
Jira REST API 拉取全量用户列表解决方案
原因说明
Jira Cloud /rest/api/3/users/search 接口默认开启分页限制,单次请求默认最多返回50条用户数据,全量拉取需要通过分页参数循环调用接口。
核心调用参数说明
你需要在请求URL后追加以下3个查询参数:
maxResults:单次请求返回的最大用户数,最高可设置为1000,可减少请求总次数startAt:分页偏移量,从0开始计数,标识当前请求返回的结果从第几条数据开始includeInactive:可选参数,设置为true时会同时返回已禁用的非活跃用户,默认仅返回活跃用户
分页拉取逻辑
- 初始化偏移量
startAt = 0,设置单次拉取数量maxResults = 1000 - 发起接口请求,将当前页返回的用户数据合并到全量列表中
- 若当前页返回的用户数量小于你设置的
maxResults,说明已拉取完全部数据,终止循环 - 若当前页返回的用户数量等于
maxResults,将startAt累加maxResults后重复步骤2的请求 - 若用户量级较大,可在两次请求之间加10~50ms的延迟,避免触发Jira接口限流
参考代码示例(Python)
import requests # 基础配置 JIRA_DOMAIN = "https://myurl.atlassian.net" API_EMAIL = "你的Jira账号邮箱" API_TOKEN = "你的Jira API Token" all_users = [] start_at = 0 max_results = 1000 while True: url = f"{JIRA_DOMAIN}/rest/api/3/users/search" params = { "startAt": start_at, "maxResults": max_results, "includeInactive": "true" } response = requests.get(url, auth=(API_EMAIL, API_TOKEN), params=params) # 接口请求异常直接抛出 response.raise_for_status() current_page_users = response.json() all_users.extend(current_page_users) # 判断是否还有下一页 if len(current_page_users) < max_results: break start_at += max_results # 打印全量用户数 print(f"共拉取到{len(all_users)}条用户数据")
权限说明
调用接口的账号需要持有Jira全局权限中的*「浏览用户和用户组」*权限,否则可能无法拉取到所有类型的用户数据。
内容的提问来源于stack exchange,提问作者Aashutosh Kumar
相关产品推荐
相关产品推荐

