NotFound 和 BadRequest 那个更合适

请求参数:

参数 类型 说明 规则 必须 默认
title string 标题
content string 内容
cateId integer 分类编号 0

请求实例:

POST /threads/create HTTP/1.1
Host: api.buluo.koogua.com
Authorization: 555b2fd1fd99a5fa70ff1c203c673d68e040894b
{
    "title": "六一儿童节",
    "content": "祝你儿童节快乐",
    "cateId": "999"
}

但是不存在 cateId 为 999 的分类, 那返回一个NotFound 还是 BadRequest 合适呢?

阅读 2.9k
2 个回答

我认为两个都不合适,cateId不存在应该属于业务层错误,而非接口错误,应该使用业务层的错误代码予以返回,而非通过HTTP Status Code进行返回。NotFound的表意应该是接口不存在,BadRequest的表意应该是缺少必要的请求参数等。

可以使用NotFound,表示获取资源不存在,但是具体的返回码可以使用自定义的更有意义的标识,而不是使用http状态码。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏