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

如果你觉得本文对你有帮助或不错,可略表心意,请我喝一杯冰可乐。

Comments