关于 后端 api 接口设计
为什么后端不是直接使用http的状态码+响应体json。而是自定义一个格式呢?
比如这种,后端统一返回200状态码,然后用code代表请求成功或失败:
{
code:0000,
data:{},
msg:''
}
相比于用http状态码来表达:比如直接抛出500,402之类的在浏览器network中就能直接看到标红的报错请求,有什么好处呢?
关于 后端 api 接口设计
为什么后端不是直接使用http的状态码+响应体json。而是自定义一个格式呢?
比如这种,后端统一返回200状态码,然后用code代表请求成功或失败:
{
code:0000,
data:{},
msg:''
}
相比于用http状态码来表达:比如直接抛出500,402之类的在浏览器network中就能直接看到标红的报错请求,有什么好处呢?
首先这2个状态面对的是不同的对象,一个是网络协议状态,给浏览器用的;一个是请求返回的结果,给业务对象使用的。
举个栗子,有个保险业务员,打电话给客户,只要业务员拔出的请求到达了对方的电话,就是拨打成功了,也就是返回了200。但对于保险公司来说,要有人接了电话,并且聊了一定时间后,才算成功。你觉得你会用200表示这个保险员完成了一次电话推销还是在返回结构里面,定义一个code表示这次电话推销的结果?
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
状态码的错误一般没法进入success回调,而前端也会因为不知道500状态是后端运行过程出了问题,还是后端你故意这样给我让我知道你没跑完,会让前端无法处理;而通过前后端约定的返回格式,不仅能有效的通过code告诉前端遇到了什么问题,还能把提示信息(msg)也一并给出来。