REST API分页 - 如何处理超过总计数的偏移量

时间:2015-08-18 19:49:14

标签: rest pagination offset

我有一个使用limit&的RESTful API offset处理分页(如here所述)。每个请求还返回可用项目总数,以便客户端能够正确显示分页。

我想知道如何处理偏移量超过项目总数的呼叫。我可以轻松地检测到这种情况,因为在获取任何记录之前会检查总计数 - 这允许我跳过记录提取调用作为微优化,因为我知道它不会返回任何内容。

我看到两个选项:

  1. 照常营业:我返回一个标准回复,但是有一个空数组。
  2. 404:未找到与此请求匹配的结果。这样做的好处是允许我发送一个空体,但也有端点无效的模糊性。
  3. 我不确定选择哪个选项,或者是否有更好的选项。

    编辑: 似乎正确的解决方案是return a 204。它允许我发送一个空体,没有端点无效的模糊性。

1 个答案:

答案 0 :(得分:1)

正如我在另一个答案中所述,我将使用以下其中一项:

  • HTTP 200的count = 0且返回列表中没有项目。
  • HTTP 400,因为调用程序要求输入的网址无效
  • HTTP 404,因为找不到要返回的项目

在这种情况下,我认为返回错误(4xx +错误信息)是安全的,因为可以通过以下假设之一来抵消偏移量:

  • 编码错误
  • 调用者从一开始就没有获取数据(没有新状态)
  • 调用者忽略了分页数据(出现在每个响应中)
由于有效负载,分页响应中的HTTP 204不可行。分页时,您应该返回分页信息,例如,返回的项目,总项目,偏移量等,这是HTTP 204所不允许的。