我正在扩展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
由于这两个优点,我非常希望使用语义代码。如果国际化成为一项要求,我们只需翻译资源名称和简短描述,这似乎不是一个大问题。
这样做有什么问题,我没有考虑到这个问题吗?