RESTful设计:寻呼收集

时间:2009-02-01 15:41:09

标签: web-services api rest

我正在设计一个REST api,需要从服务器端执行分页(每个x)。

浏览任何资源集合的正确方法是什么:

选项1:

GET /resource/page/<pagenr>
GET /resource/tags/<tag1>,<tag2>/page/<pagenr>
GET /resource/search/<query>/page/<pagenr>

选项2:

GET /resource/?page=<pagenr>
GET /resource/tags/<tag1>,<tag2>?page=<pagenr>
GET /resource/search/<query>?page=<pagenr>

如果为1,我应该如何处理GET /资源?重定向到/ resource / page / 0,回复一些错误或回复与/ resource / page / 0完全相同而不重定向?

3 个答案:

答案 0 :(得分:13)

URI看起来不是最重要的部分。你应该考虑的是它是如何呈现给用户的。例如,页面应该具有到“下一页”的链接和到“前一页”的另一个链接(如果有的话)。看看RFC 5005 Feed Paging and Archiving

答案 1 :(得分:4)

由于我对REST的含义知之甚少,因此以下可能是“最”宁静的。

GET /resource/?page=<pageenr>&asof=<datetime>

由于表示的内容永远不会意外地改变,因此可以使用缓存。

但是要真正回答你的问题,我认为参数页面是首选方法。

答案 2 :(得分:4)

我选择(2)。为什么呢?

  1. 您可以稍后将page-size参数添加到查询中,以便客户端可以指定页面大小。
  2. 如果未指定页面参数,您只需返回第一页(默认值)即可。在许多情况下,您的客户端可能只需要第一页,因此它简化了客户端和服务器之间的协议。