php - http status code的使用问题
黄舟
黄舟 2017-04-11 10:24:24
[PHP讨论组]

作为一个前端,最近开始写后台,遇到了一些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规范也很强调对其的使用,所以我还是希望大家给我指条明路,这部分到底该怎么弄。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
PHP中文网

规范只是大体建议,按照规范来可以,你搞个233 ok也行,关键是协调好,留下相关文档...

高洛峰

422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

感觉这个合适唉

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号