api - REST API 错误代码 500 处理

标签 api rest http error-handling error-code

我们正在构建一个新的 REST API。

我在争论错误代码 500(内部服务器错误)不应该被返回。

现在,当然,如果您知道客户端的参数有误或有其他问题,您就可以控制一切并可以返回一些适当的错误代码(例如 422)。

因此,如果发生意外错误,服务器可以:

  1. 不捕获意外错误以致于 500 冒泡到客户端
  2. 捕获任何意外错误并返回一些表示“意外情况”的错误代码(老实说,我找不到任何此类错误代码!)

还有其他选择吗?

最佳答案

这是服务器错误,不是客户端错误。如果服务器错误不返回给客户端,就不会为它们创建一个完整的状态代码类(即 5xx)。

您无法隐藏您犯了编程错误或您依赖的某些服务不可用的事实,这当然不是客户的错。在这些情况下,返回 5xx 系列之外的任何其他范围的代码都是没有意义的。

RFC 7231 mentions in section 6.6. Server Error 5xx :

The 5xx (Server Error) class of status code indicates that the server is aware that it has erred or is incapable of performing the requested method.

正是如此。代码“500 Internal Server Error”在不应向客户端公开的意义上没有任何“内部”内容。

关于api - REST API 错误代码 500 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27826491/

相关文章:

rest - Jmeter : How to check for empty text response

德尔福。 socket 。仅在一个节点/MAC 地址上的 TIdHttp 套接字连接上访问被拒绝。必发API

python - 如何在 Flask 中捕获和读取传入 HTTP 请求的 header ?

c# - 如何对文件名进行编码以供下载?

web-services - REST 数组操作最佳实践

javascript - Mailchimp 未收到名字和姓氏

android - Android REST 客户端的 Redirect_URI

c - Linux 相当于 GetCommandLine 和 CommandLineToArgv?

java - 学习如何正确阅读Javadoc

php - Wamp 服务器——无法执行任何 PHP Rest API