作为一个前端,最近开始写后台,遇到了一些restful设计上的问题,希望各位大神解答一下。
restful规范特别的强调了HTTP Status Codes的使用,但是我在使用的时候却有一些疑惑。尤其是在返回错误信息这块。
我自己使用时是约定好一套关于业务的错误码,比如20001,代表'缺少xxx字段',把他放在http response body里面返回,然后在response头里面写好200 OK之类的。
比如login的时候,假如前端传过来的json里面没有password字段,
那我返回一个400 Bad Request的http报文,同时报文的body部分如下(仅仅举个例子哈,一切从简):
{
"code":20001,
"message":"缺少password字段"
}
对于上面这样的处理方式,主要的疑问点在于:
有的时候的业务上的错误不知道该用哪个HTTP Status Codes,比如说新建用户,如果说用户名已存在,那我这个时候body部分很好搞,但是HTTP Status Codes应该用哪个呢?400 Bad Request肯定不对吧,人家前端传过来的信息没有问题,401 Unauthorized 403 Forbidden之类的感觉也不能用在这,所以这个时候的HTTP Status Codes状态码到底应该用什么呢?
确实有很多同学在使用时是不管什么情况都返回200 OK,然后在http body部分用json去返回错误信息,但我还是觉得HTTP Status Codes是restful中很重要的一部分,restful规范也很强调对其的使用,所以我还是希望大家给我指条明路,这部分到底该怎么弄。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
规范只是大体建议,按照规范来可以,你搞个
233 ok也行,关键是协调好,留下相关文档...422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
感觉这个合适唉