在设计有关分页的Restful API时,有啥好的实践吗?


例如我需要查询userid在[100,200]区间的结果,大家一般怎么做?

我能想到这些(都是get):
/users/from/100/to/200
/users/100/200
/users?from=100&to=200
/users?start=100&per_page=100

大家有啥好的建议么?怎么写能看起来比较干净?

restful 架构设计 网站架构 网站开发

飒飒de枫 10 years, 5 months ago

/users/from/100/to/200
烂,这种不分青红皂白把参数全部搞成目录的方式烂爆了
这么搞的人实际上根本不理解REST

/users/100/200
语义缺失,不好

/users?from=100&to=200
这个很正常,我会用这个

/users?start=100&per_page=100
start和page size的设计有点怪,一般都是from / to,或者 page / page size

但是,你的真正问题其实不是分页,而是userid在[100,200]区间的过滤条件,前面哪些url设计都偏离到分页的方式上去了

分页是请求 /users 资源集合,以userid排序,从x条开始,每次取y条

你的问题是请求 /users 资源集合,过滤条件为userid在100到200之间

/users?by=userid&gte=100&lte=200
by 以哪个属性过滤
gte 大于等于
lte 小于等于

西行寺@幽幽子 answered 10 years, 5 months ago

Your Answer