休息api中成功和错误响应的详细信息

时间:2016-08-07 17:56:58

标签: json node.js rest http error-handling

我正在节点js中编写一个rest api并使用mssql作为我的db。关于api应该按照休息指南返回的成功和错误响应的细节,我处于两难境地。例如,如果在执行db操作时键约束存在错误,则错误消息应该是这样的

{ "error": { "code": 500, "message": "Internal Server Error" } } 或者它需要更具体的错误细节,如表格详细信息。通过错误泄露内部细节是否正确?状态代码是否需要成为json对象的一部分?此外,成功消息是否应该更加通用,如“使用200个代码或更具体的记录创建成功”?

1 个答案:

答案 0 :(得分:0)

始终在最终用户中思考。如果您返回完整的错误消息,它会帮助他吗?也许用户做了一个导致内部失败的错误请求。如果没有,将其清除并记录错误!

例如,当用户收到此回复时,他应该重复请求吗?或者是服务器故障,应该等待修复?所以,我建议像:

{
  "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