api返回错误详情不香吗?
Categories:
程序设计
背景
看到公司一个项目里,网关层把controller抛出的异常消息都吃了,统一只给客户端返回
{
code: "E001",
msg: "系统异常"
}
我非常纳闷,为什么不把详细的错误信息返回给客户端呢?这样排查问题多方便呀。
同事答,反正有elk日志中心,去上面查也差不了多少。给客户端返回的话,可能导致信息泄露;而且错误消息展示给用户看也不美观。
观点
我当时就震惊了。
api返回的错误信息和alert给用户看的提示,有个毛的关系呀?
api又不是直接面向用户的,api的用户是客户端,客户端的用户才是真正的用户。
api给你返回,你就一定得alert出来给用户看?
就算你生产觉得不安全,好歹你测试环境把错误信息放出来嘛
{
code: "E001",
msg: "系统异常",
detail: { // 这里可以把详细的错误信息输出,如果是测试环境,我觉得甚至可以把stacktrace输出
"timestamp": "2021-07-12T07:05:29.885+00:00",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/m1ain.html"
}
}
如果你觉得本文对你有帮助或不错,可略表心意,请我喝一杯冰可乐。 ☕