关于后端 api 接口设计的疑问

关于 后端 api 接口设计

为什么后端不是直接使用http的状态码+响应体json。而是自定义一个格式呢?
比如这种,后端统一返回200状态码,然后用code代表请求成功或失败:

{
    code:0000,
    data:{},
    msg:''
}

相比于用http状态码来表达:比如直接抛出500,402之类的在浏览器network中就能直接看到标红的报错请求,有什么好处呢?

阅读 1.7k
2 个回答

状态码的错误一般没法进入success回调,而前端也会因为不知道500状态是后端运行过程出了问题,还是后端你故意这样给我让我知道你没跑完,会让前端无法处理;而通过前后端约定的返回格式,不仅能有效的通过code告诉前端遇到了什么问题,还能把提示信息(msg)也一并给出来。

首先这2个状态面对的是不同的对象,一个是网络协议状态,给浏览器用的;一个是请求返回的结果,给业务对象使用的。
举个栗子,有个保险业务员,打电话给客户,只要业务员拔出的请求到达了对方的电话,就是拨打成功了,也就是返回了200。但对于保险公司来说,要有人接了电话,并且聊了一定时间后,才算成功。你觉得你会用200表示这个保险员完成了一次电话推销还是在返回结构里面,定义一个code表示这次电话推销的结果?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题