Http 响应码的问题应该怎么选择?
一般来说 如果业务逻辑失败 比如登录的账号或者密码错误 那么 http
应该响应 500
还是200
?那么其他业务情况呢 比如 输入的参数有误 或者预期有数据但实际没数据 应该用什么样的响应码?
回复
1个回答

test
2024-06-25
我比较倾向于把业务的错误融合到HTTP状态码里面。
比如帐号错误密码错误,应该返回401。程序上的异常(影响到前端流程、数据库连接异常、文件权限异常),要返回500。其他业务逻辑上的问题、异常,和正常情况一样,都返回200。参数有误,应该要返回400。
在响应体里面,也需要有响应码,这个响应码就和业务逻辑有关。比如会返回这样的响应码: 1001 密码错误 1002 验证码错误 1003 缺少XX必传参 1003 XXX不存在
好处是 加了HTTP状态码之后,就可以在网关日志里面根据HTTP状态码统计接口异常情况。坏处是 前端除了需要判断响应体里面的状态码,还需要判断HTTP状态码。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容