我应该为RESTful JSON API使用数字错误代码或语义错误代码吗?

时间:2016-01-22 10:57:42

标签: json api rest

我正在扩展RESTful JSON API的错误报告。

目前,如果请求出现问题,我们会返回HTTP 400错误请求。我们在响应内容中包含一些其他信息,如下所示:

"resource_name": {
    "field_with_error": "error message"
}

我想将其扩展为以下格式:

"resource_name": {
    "field_with_error": {
        "message": "error message",
        "code": "error_code"
    }
}

我的问题与上面的“代码”字段有关。

某些API(例如Facebook's Graph API)使用数字错误代码。其他人(例如GitHub's API)使用字符串。

这两种方法都有好处和缺点。数字错误代码很棒,因为不需要将字符串转换为国际用户的其他语言。语义代码很好,因为您不必维护已经分配的数字列表。

语义代码可以是名称间隔,以避免通过以下方案发生冲突:

<resource name>_<HTTP status code>_<short description>

E.g:

invoices_400_malformed_email

由于这两个优点,我非常希望使用语义代码。如果国际化成为一项要求,我们只需翻译资源名称和简短描述,这似乎不是一个大问题。

这样做有什么问题,我没有考虑到这个问题吗?

0 个答案:

没有答案