中國農業歷史與文化

    当前位置:主页 > 新闻旧事 >

    当前栏目:新闻旧事

    前后端分离项目接口返回200但是里面返回500合理吗

    2019-12-31 14:42:25

    虽然萝卜白菜各有所爱,我个人坚持认为对于REST接口,就应该用HTTP层面的status来表达操作是否成功。HTTPstatus直接500,相当于回答:“请求出错了。”HTTPstatus层面是说是200,在payload里写500,等于服务器这样的回答:“请求成功了,但是其实是出错了。”现在,调用那一端不得不要理解一下这个非常晦涩的话语,除了明确用500status表示出错,在接到“成功”请求的时候,依然要看一看它的内容是否出错,多一个判断,就多一份麻烦,就多一份出bug的机会。更要命的是,网络通讯不只是一个客户端一个服务器的事情,中间会有很多层节点,如果其中某一个Proxy对status200的请求理解非常正统,做了cache或者什么处理的话,那就……惨了。所以,最好还是老老实实用HTTP的500status。next.js也犯过一样的错误,把4XX、5XX的错误当200返回,导致社区怨声载道,最后next.js不得不改过来。最后多说一句,题主给的错误截屏里,错误原因是“最高教育经历只能存在一个”,这看起来是客户端调用给错了参数或者连续重复一个操作导致的问题,简单说,这是客户端过错,不是服务器出错,status应该是4XX,而不是5XX。

    上一篇:请问如何看待深圳2015年房价暴涨
    下一篇:男朋友总是背着自己偷偷买东西是一种怎样的体验_3

联系信箱

Copyright © 2013中国科学院自然科学史研究所 All Rights Reserved

地址:北京市海淀区中关村东路55号 邮编:100190京ICP备05046608号
网站地图