我目前正在使用编写REST。我遵循headers原则,用户应该只通过我的响应主体代码头中的给定链接来移动api。在某些参考资料中,我实现了分页功能。不过,我想知道,当用户没有遵循我的边界并随机地发出请求时,我应该告诉用户什么(HTTP状态代码),而请求页面实际上是“超出范围”的。目前,我只是返回一个空集合,但我认为作为一个用户,我将无法从这样的反应。我考虑使用状态码“找不到”,但我不确定这是否合适。我真的想保持对REST的忠诚,这意味着我仍然忠于HTTP。所以,有人能给我建议,甚至告诉我,我的问题是否真的有规则?
也许是一个具体的例子:
因此,请求http://...../resource?page=0返回第一页。我的问题是,对于请求http://...../resource?page=4,我应该返回什么?目前我只是返回null,但我不认为这是正确的反应。提前感谢
编辑:如果请求的页面是“空”的,我只是询问预期的响应。我知道,对于未来的更改请求来说,固定页面大小的设计可能注定要失败,但是由于这个API是Microservice的一部分,所以除了我们的团队内部有一场斗争外,不会有任何变化:)
发布于 2016-06-26 15:41:24
404 not found是绑定外访问的适当返回代码。
但是,您应该考虑更改资源标识符(URI)。根据URL参数返回404或200并不是一个好的设计。
最好将每个页面作为单一资源来处理。对来说也是如此。
.../resource/page/0 #200 + return link in header to next resource .../resource/page/1
.../resource/page/4 #404 + return link to first resource .../resource/page/0)如果没有其他任何操作(例如,范围访问),使用URL参数应该是最后一个选项。
https://stackoverflow.com/questions/38039983
复制相似问题