请寻找一些最佳做法...
场景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 这种结构目前是否有最佳实践?
答案 0 :(得分:2)
我建议返回一个空集合和状态代码200.此外,您应该在响应标题中提供超链接,以指向客户端"更正"页面,例如第一页或最后一页"有效"页。对于集合资源的分页,服务器应始终响应前一页和下一页的超链接。