Eli*_*eth 3 c# asp.net-web-api asp.net-web-api2
当路径 customer/1 存在但客户搜索背后的资源/实体不存在时,
我应该返回 404 吗?我的意思是路线存在...
或者我应该返回一个
204(无内容),因为我找不到客户,结果为空。
微软示例:
public IHttpActionResult Get (int id)
{
Product product = _repository.Get (id);
if (product == null)
{
return NotFound(); // Returns a NotFoundResult
}
return Ok(product); // Returns an OkNegotiatedContentResult
}
Run Code Online (Sandbox Code Playgroud)
在我看来 NotFound() => 404 在这里不正确?!
澄清/改进我的问题。
我需要区分一个
1) 路线:customer/1 => 路线不存在
(我会在这里返回 404,但这无论如何都是由框架处理的......)
2) 路由:customer/1 => 存在但数据库中的资源/实体不存在
(我会在这里返回 404)
3) 路由:customersSearch/searchterm => 未找到数据库中的资源/实体
(我会返回 204 )
请您善待并纠正您对这个更明确问题的回答好吗?
小智 5
通用 REST 指南指出,在这种情况下,您应该返回 404。您请求了一个不存在的特定资源。就好像您从网站上请求了物理文档一样。
在我所有的工作场所,都是由企业架构团队发布的模式:)
一个建议的话...有某种形式的日志记录这种情况,这样你就可以检测“逻辑”404(在这种情况下)与真正的没有资源/处理程序/脚本映射可用于服务请求!至少在部署时识别问题:)
| 归档时间: |
|
| 查看次数: |
1581 次 |
| 最近记录: |