REST API JSON 错误代码和错误消息

Yoh*_*oda 5 api rest standards json

我最近一直在编写 Web 服务,这是一个成功和错误响应的示例。

错误

{
  "code": 1150,
  "status": false,
  "message": "API Student does not exist.",
  "serverTime": "2013-11-29 09:47:52"
}
Run Code Online (Sandbox Code Playgroud)

成功

{
  "code": 200,
  "status": true,
  "data": {
    "id": 49
  },
  "serverTime": "2014-04-17 05:06:17"
}
Run Code Online (Sandbox Code Playgroud)

关于返回错误我有一个困惑,为什么我们总是返回一个错误代码和一条消息,例如,当需要用户名和密码作为输入参数时,假设发出一个空白请求,那么我返回的是一个错误代码1100错误消息“用户名不正确”。我从不返回完整的错误列表,例如,在这种情况下,应发送带有两个错误代码的两条错误消息,以便节省最终用户的数据和时间。

这是我建议的示例?

{
  "code": 1010,
  "status": false,
  "errors": [
    {
      "code": 1000,
      "name": "Username invalid"
    },
    {
      "code": 1001,
      "name": "Password invalid"
    },
        {
      "code": 1002,
      "name": "Password not strong"
    }
  ],
  "serverTime": "2013-12-03 12:34:02"
}
Run Code Online (Sandbox Code Playgroud)

为什么这不是一个好方法?我在 Twitter API 或 Facebook API 中都没有看到这一点。

Pra*_*kam 4

没有人可以阻止 API 设计者返回多个可能的错误响应。决定仅取决于他们,但在我看来,您应该返回服务器端发生的最相关的错误。

其背后可能有很多原因,如下所示:

  1. 所有客户端的统一错误处理。
  2. 引起的大多数相关错误将更实际地帮助客户,因为他不必关心引起的所有概率错误。
  3. JSON 结构简单。(将避免错误数组。)