Keycloak是否存在支持分页获取用户列表的服务端点
Keycloak分页获取用户列表的实现方案
你当前调用的GET /admin/realms/{realm}/users端点原生支持分页能力,无需切换其他专属服务端点。之前返回全量用户数据的原因是未传入接口定义的分页控制参数。
分页控制参数说明
该接口通过两个查询参数实现分页逻辑:
first:指定查询结果的起始偏移位置,从匹配过滤条件的用户列表中第N条记录开始返回max:指定单页最多返回的用户记录条数,即分页大小
如果不传入上述两个参数,接口默认会返回匹配条件下的全量用户数据,这就是你遇到全量返回问题的核心原因
实际调用示例
假设业务场景为每页固定返回20条用户,需要获取第3页的用户数据,按照接口规则换算参数即可:
- 起始偏移量计算:
first = (当前页码 - 1) * 每页大小 = (3-1)*20 =40 - 分页大小:
max=20
最终请求格式为:GET /admin/realms/{realm}/users?first=40&max=20
配套使用注意事项
- 分页参数可和接口支持的所有过滤参数(如用户名、邮箱、姓氏匹配查询)组合使用,过滤逻辑会先执行,再基于过滤结果做分页截取
- 如需获取匹配条件下的用户总数量,用于前端分页组件的总页码展示,可调用配套计数接口
GET /admin/realms/{realm}/users/count,传入和列表查询完全一致的过滤参数,即可返回匹配结果的总计数
注意:该接口不支持直接传入页码参数,所有分页偏移量需要调用方自行换算,接口本身无内置的页码转偏移量处理逻辑
内容的提问来源于stack exchange,提问作者Ahmed Moniem
相关产品推荐
相关产品推荐

