我正在设计一个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完全相同而不重定向?
答案 0 :(得分:13)
URI看起来不是最重要的部分。你应该考虑的是它是如何呈现给用户的。例如,页面应该具有到“下一页”的链接和到“前一页”的另一个链接(如果有的话)。看看RFC 5005 Feed Paging and Archiving
答案 1 :(得分:4)
由于我对REST的含义知之甚少,因此以下可能是“最”宁静的。
GET /resource/?page=<pageenr>&asof=<datetime>
由于表示的内容永远不会意外地改变,因此可以使用缓存。
但是要真正回答你的问题,我认为参数页面是首选方法。
答案 2 :(得分:4)
我选择(2)。为什么呢?