【发布时间】:2013-06-25 02:24:45
【问题描述】:
我们现在正在设计我们的 RESTful API,我有一个关于如何公开分页信息的问题。
似乎一些著名的服务,如 Github 或 Firefox Market Place 在其 API 中具有如下内容:
{
"meta": {
"limit": 3,
"next": "/api/v1/apps/category/?limit=3&offset=6",
"offset": 3,
"previous": "/api/v1/apps/category/?limit=3&offset=0",
"total_count": 16
}
}
我的问题是:
为什么服务器要在响应中给出完整的下一个/上一个 url?
在我看来,客户正在发出第一个请求。所以它知道它曾经调用过哪些参数(偏移量/限制/api版本)。客户端很容易弄清楚下一个/上一个要调用的 url 是什么。为什么要费心计算多余的 url 并将其提供给客户端?
【问题讨论】:
-
使用分页可以保护您免受用户通过大型查询占用您的所有资源。例如,将返回项目的数量限制为 20。您可以传递页面,以方便用户。
-
@Matt 我认为您错过了 OP 提出的确切问题。这是“当客户端清楚地知道如何生成它们时,为什么要在响应中提供 URL?”而不是“为什么要使用分页?”
-
@MattBall 感谢您为我澄清。你说的正是我要输入的内容。
标签: api restful-url api-design