非严重服务器错误的HTTP状态代码

时间:2017-07-14 12:40:14

标签: api http http-status-codes

如果出现非关键服务器错误,我应该在API中返回哪个HTTP状态代码?

例如,/dev/xxx被调用,但由于null传递失败,或者在尝试访问数据库时可能出现一些错误,无论如何。

我考虑过 500 代码,但是当服务器根本不工作时使用它, 而SomeMethod只有在一切正确时才有效。

当然,回复正文包含错误及其描述。

2 个答案:

答案 0 :(得分:1)

由于没有针对“非严重错误”的特定HTTP代码,我所能做的只是告诉你我的意见,即 - 只需使用200并打印类似异常的响应。

正如您在评论中所说的那样 - 您可以优雅地处理内部错误,因此只需向客户端抛出一个异常即可解释其请求失败的原因(“原因”可能类似于“内部数据库错误”)。

答案 1 :(得分:1)

如果这些“非严重错误”是由客户端的错误输入引起的(例如,错误的数据类型),那么您应该使用客户端错误状态代码 400(错误请求)

以下是standard

的说明
  

400(错误请求)状态代码表示服务器不能或      由于被认为是某种东西,它不会处理请求      客户端错误(例如,格式错误的请求语法,无效请求      消息框架或欺骗性请求路由)。