【发布时间】:2015-11-11 22:07:45
【问题描述】:
我有一个 RESTful API,它使用 limit 和 offset 来处理分页(如 here 所述)。每个请求还返回可用项目的总数,以便客户端正确显示分页。
我想知道如何处理偏移量超过项目总数的调用。我可以轻松检测到这种情况,因为在获取任何记录之前会检查总计数 - 这允许我跳过记录获取调用作为微优化,因为我知道它不会返回任何内容。
我看到两个选项:
- 一切照旧:我返回一个标准响应,但包含一个空的项目数组。
- 404:未找到与此请求匹配的结果。这样做的好处是允许我发送一个空正文,但也有端点无效的歧义。
我不确定该选择哪个选项,或者是否有更好的选项。
编辑:似乎正确的解决方案是return a 204。它允许我发送一个空的正文,没有端点无效的歧义。
【问题讨论】:
-
是的,一般的共识好像是204
-
为什么要返回可用项目的总数?这不是强迫您首先获取数据,然后计算同一个 http 请求中的所有项目吗?
-
我确实必须发出两个请求,但成本很低,并且通过缓存可以进一步缓解。此外,客户没有其他方法可以知道在他们的分页中显示多少页。
标签: rest pagination offset