重构 RESTAPI 分页的疑问

gexujun · 2015年04月17日 · 最后由 gexujun 回复于 2015年04月17日 · 7001 次阅读

请问各位一般平时如何设计需要分页的 RESTAPI? 我之前大概是这样做的,分成两个 API:

GET /resources?page=xx&item_per_page=yy , return [r1, r2, ...]

GET /resources/count , return {count: number}

但看到有很多地方是这样做的:

GET /resources?page=xx&item_per_page=yy ,return { totalItem: number, resouces: [r1, r2, ...], previous ... next ... ... }

我看到资料里说:RESTAPI 里对 GET /resources 这样的资源应该返回一个列表,因此对这个迷糊了。。。 想问问各位的习惯。

只是将返回的东西包装一下,你把代码贴全就看清楚了。这种分页有两种,一种是客户端用 js 分页,拿到的是全部数据(几百条的少量数据),一种是服务器端分页,计算好,把当前页的结果和整体分页信息返回,就是类似你贴的代码,比如:

{
total: 99,
current_page: 3,
resources: [...],
pre_page: 2,
next_page: 4,
}

没必要:

GET /resources , return [r1, r2, ...]

GET /resources/count , return {count: number}

api 文档中第二个可能用在别的地方,不一定是分页用的。

PS:巨反感“大拿”这个词,不知道为啥。

#1 楼 @liwei78 谢谢回复,大拿两个字去掉了。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号