为了账号安全,请及时绑定邮箱和手机立即绑定

有效请求但数据为空的正确REST响应代码是什么?

有效请求但数据为空的正确REST响应代码是什么?

凤凰求蛊 2019-12-07 14:44:57
例如,您运行的GET请求,users/9但没有ID为#9的用户。最好的响应码是?200 OK202接受204没有内容400错误的要求找不到404
查看完整描述

3 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

最初,我认为204是有意义的,但是在讨论之后,我相信404是唯一真正正确的答案。考虑以下数据:


用户:约翰,彼得


METHOD  URL                      STATUS  RESPONSE

GET     /users                   200     [John, Peter]

GET     /users/john              200     John

GET     /users/kyle              404     Not found

GET     /users?name=kyle`        200     []

DELETE  /users/john              204     No Content

一些背景:


搜索返回一个数组,它没有任何匹配,但是有内容:一个空数组。


404当然是最著名的请求服务器不支持的URL,但是实际上缺少的资源是相同的。

即使/users/:name与匹配users/kyle,用户Kyle也不可用资源,因此404仍然适用。它不是搜索查询,它是动态url的直接引用,所以它是404。


无论如何,我的两分钱:)


查看完整回答
反对 回复 2019-12-07
  • 3 回答
  • 0 关注
  • 597 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信