Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RESTAPI JSON错误代码和错误消息_Json_Api_Rest_Standards - Fatal编程技术网

RESTAPI JSON错误代码和错误消息

RESTAPI JSON错误代码和错误消息,json,api,rest,standards,Json,Api,Rest,Standards,我最近一直在编写Web服务,这是一个成功和错误响应示例 错误 { "code": 1150, "status": false, "message": "API Student does not exist.", "serverTime": "2013-11-29 09:47:52" } 成功 { "code": 200, "status": true, "data": { "id": 49 }, "serverTime": "2014-04-17 0

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

错误

{
  "code": 1150,
  "status": false,
  "message": "API Student does not exist.",
  "serverTime": "2013-11-29 09:47:52"
}
成功

{
  "code": 200,
  "status": true,
  "data": {
    "id": 49
  },
  "serverTime": "2014-04-17 05:06:17"
}
关于返回错误,我有一个困惑,为什么我们总是返回一个错误代码和一条消息,例如,当需要用户名和密码作为输入参数时,假设发出了一个空白请求,那么我返回的是错误代码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"
}

为什么这不是一个好方法呢?我在Twitter API或Facebook API中都没有见过这种情况。

没有人能阻止API设计者返回多个可能的错误响应决策仅由他们决定,但我认为您应该返回服务器端发生的最相关错误

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

  • 由所有客户端统一处理错误
  • 最相关的错误导致将帮助客户更实际,因为他将不必关心所有概率错误导致的
  • JSON结构简单。(将避免错误数组。)

  • 以facebook为例,如果告诉所有字段错误,这将是一个安全漏洞。这些信息将使暴力行动更容易/更快。当您的应用程序代码执行简单的序列时,在某一点上发生了意外情况,然后返回错误。为什么要继续收集更多错误?在您的情况下,我只需在(html输入标记:required=“required”)之前避免通过html/js检查发送空公式,我认为安全性不是问题,因为这些已经通过移动屏幕公开,假设这是移动应用程序的登录屏幕或注册屏幕。这可能会节省最终用户的时间,减少api调用的数量,而无需多次调用api来检索错误。@timeman789-我将始终使用最相关的错误。