【发布时间】:2017-02-09 17:26:28
【问题描述】:
当我的资源中的对象不可用时应该返回什么状态码?
{
"Id": 0,
"name": "user1",
"scheme": {
"id": 15,
"name": "scheme1"
}
}
如果id为15的scheme不存在,应该是什么响应码?400还是404?
【问题讨论】:
-
你查询什么?
-
@Justas, GET,getByID of schema ,我从这个服务得到一个 404
-
状态码
400表示 请求 格式错误(例如缺少参数)。在这种情况下,请求很好,只是 ID 不存在。所以你应该(在我看来)返回一个404。 -
@nbokmans 我认为
404不适合这种情况,如果请求已执行到指向确实存在的资源的 URL。问题出在有效载荷中,因此404与它无关。 JSON 语法是有效的,所以400也不合适。 OP 拥有的是一个无法处理的实体,因此422状态代码将是这里的最佳选择。更详细的解释见我的answer。
标签: rest