【发布时间】:2016-06-26 15:21:16
【问题描述】:
我目前正在使用 Jersey 框架编写一个 REST API。我遵循 HATEOAS 原则,用户只能通过我的响应正文 oder 标头中的给定链接在 api 中移动。在一些资源上,我实现了分页功能。不过,我想知道,当他没有遵循我的界限并且就像随机发出请求时所请求的页面实际上是“越界”时,我应该告诉用户(HTTP 状态代码)什么。目前我只返回一个空集合,但我认为作为用户,我无法从这样的响应中做出一些事情。我考虑使用“未找到”状态代码,但我不确定这是否合适。我真的很想忠于 REST,这意味着我忠于 HTTP。那么任何人都可以给我建议,甚至告诉我是否真的有解决我的问题的规则吗?
也许是一个具体的例子:
- 页面大小 = 10;
- Collection.size = 27;
- 请求的页面 = 4;
- 分页从第 0 页开始
,因此请求http://...../resource?page=0,返回第一页。
我的问题是,对于http://...../resource?page=4 的请求,我应该返回什么?目前我只是返回 null,但我认为这不是正确的回应。
提前致谢
编辑: 我只是在请求的页面为“空”的情况下询问预期的响应。我知道固定页面大小的设计可能注定了未来的变更请求,但由于这个 API 是微服务的一部分,所以不会有,除非我们团队内部有争执:)
【问题讨论】:
标签: rest http pagination api-design