【发布时间】:2015-01-14 02:47:31
【问题描述】:
假设我们有以下 REST 调用:
GET api/companies/5
(获取 id 为 5 的公司)
如果公司 '5' 不存在,我们通常会返回 404 Not Found 响应。
但是现在,让我们接听这个电话:
GET api/companies/5/invoices/10
(从公司 5 获取发票 10)
现在,如果公司 '5' 不存在,我们还返回404 Not Found 吗?或者仅在无法找到最外层资源(在这种情况下为发票 10)时才返回 404。
Bad Request 可能是更好的选择吗?
【问题讨论】:
-
最好有一个 404 但使用自定义错误消息处理,向用户隐藏丑陋的错误总是更好
-
从技术上讲,应该是 404。但是响应正文可能包含任何内容。全面响应将推动下一步。
标签: rest asp.net-web-api http-status-code-404 asp.net-web-api2 api-design