Http 响应码的问题应该怎么选择?

作者站长头像
站长
· 阅读数 20

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

回复
1个回答
avatar
test
2024-06-25

我比较倾向于把业务的错误融合到HTTP状态码里面。

比如帐号错误密码错误,应该返回401。程序上的异常(影响到前端流程、数据库连接异常、文件权限异常),要返回500。其他业务逻辑上的问题、异常,和正常情况一样,都返回200。参数有误,应该要返回400。

在响应体里面,也需要有响应码,这个响应码就和业务逻辑有关。比如会返回这样的响应码: 1001 密码错误 1002 验证码错误 1003 缺少XX必传参 1003 XXX不存在


好处是 加了HTTP状态码之后,就可以在网关日志里面根据HTTP状态码统计接口异常情况。坏处是 前端除了需要判断响应体里面的状态码,还需要判断HTTP状态码。

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