JSON REST Api Pagination页面超出范围或空集合响应代码

时间:2015-08-11 09:55:28

标签: json api rest

请寻找一些最佳做法...

场景1:GET: /api/v1/widgets/?page=10&per_page=5窗口小部件集合仅包含10条记录。所以页面不在界限。

场景2:GET: /api/v1/widgets/窗口小部件集合当前为空。

因此,在这两种情况下,我都在寻找合适的状态代码和响应。

我的想法:

  • 422 unprocessable entity通常用于验证,但在这种情况下,我认为这是合适的,因为请求的page超出范围。特别适用于方案1
  • 400 bad request因为页面超出范围:场景1
  • 404 Not found因为资源是空的:场景1& 2
  • 204 No Content因为两个集合都返回空数据:Scenarion 1& 2
  • 200 - with data as empty array因为网址有效,但内容不存在。情景1& 2

这种结构目前是否有最佳实践?

1 个答案:

答案 0 :(得分:2)

我建议返回一个空集合和状态代码200.此外,您应该在响应标题中提供超链接,以指向客户端"更正"页面,例如第一页或最后一页"有效"页。对于集合资源的分页,服务器应始终响应前一页和下一页的超链接。