理论上,不同的HTTP Method 和 不同的HTTP StatusCode代表着不同的意义,至少再语义上是这样。
如果使用HTTP协议,那么都应该遵循此规范。
但是,在实际的开发中,为了避免不同公司/团队的沟通/扯皮,好多人对于接口的设计是:
一律使用POST请求,一律返回HTTP 200,内容包含自定义业务Code和ErroeMessage。
对此,两派各有支持者,也各自有理由。可以看这些讨论和观点:
https://www.v2ex.com/t/830030
https://v2ex.com/t/846679
https://coolshell.cn/articles/22173.html
这类话题的讨论基本成月经了,月月讨论
至于哪个是best practice,这也是主观的,毕竟
提供一个参考,stackoverflow 上针对 Status code inside the body of a REST API response 的回答 https://stackoverflow.com/a/69945479