月经贴……然后我也回过几次类似的回复:为什么不全都要呢 :doge
状态码和响应体一起用并不冲突。Http 状态码用来区分正常响应和错误响应,响应体中给出具体的错误码。当然,200 状态就没有错误码这一封装了。
也许这有点多余的认知成本,但实际上用得最多的就三状态:200 (这个甚至不用写),400 (用户输入错误),500 (服务端错误)。这不比各种业务面条来得复杂吧……
再进一步说,新的 Spring6 开始支持 RFC 7807 规范:
https://www.rfc-editor.org/rfc/rfc7807 ,规定了异常信息如何返回。可参考:
https://www.51cto.com/article/721281.html 。基本思路就是异常产生时的响应特殊 header 和 json body 。
当然以 Java17 的实际普及程度来看广泛要升级到 Spring6 还有相当长的时间,但我已开始期待,观望等 Spring6 普及了这一月经贴的内容是否会有所变化😀