【问题标题】:details of success and error responses in rest apirest api 中成功和错误响应的详细信息
【发布时间】:2016-12-13 12:09:30
【问题描述】:
我正在节点 js 中编写一个 rest api 并使用 mssql 作为我的数据库。对于 api 应根据休息指南返回的成功和错误响应的详细信息,我感到两难。比如在做db操作的时候key的约束有错误,这个错误信息应该是这样的吗
{
"error": {
"code": 500,
"message": "Internal Server Error"
}
}
还是需要更具体地了解错误详细信息,例如表详细信息。通过错误泄露内部细节是否正确?状态码是否需要成为 json 对象的一部分?此外,成功消息是否应该更笼统,例如带有 200 个代码或更具体的“成功创建记录”?
【问题讨论】:
标签:
json
node.js
rest
http
error-handling
【解决方案1】:
始终为您的最终用户着想。如果你返回完整的错误信息,它会对他有帮助吗?也许用户做了一个错误的请求,导致内部失败。如果没有,将其清除并记录错误!
例如,当用户得到这个响应时,他应该重复请求吗?还是服务器故障,应该等待修复?所以,我建议如下:
{
"error": {
"code": 1000,
"href": 'http://mywikiapage.com/errors/1000',
"message": "Sorry, we're experiencing some issues. Try again later."
}
}
请注意,错误代码已更改。它的新“自定义”代码可以引用一个 wiki 页面,其中提供了有关错误本身的更多详细信息。此外,用户始终可以从 HTTP 响应中获取 500 结果代码。
我也想建议阅读this other SO question