猿问

REST HTTP状态代码用于失败的验证或无效的复制

REST HTTP状态代码用于失败的验证或无效的复制

我正在使用基于REST的API构建一个应用程序,并且已经到了为每个请求指定状态代码的地步。

对于验证失败的请求,或者请求试图在我的数据库中添加副本,我应该发送什么状态代码?

我看过了http:/www.w3.org/protocol/rfc 2616/rfc 2616-sec10.html但似乎没有一个是对的。

在发送状态代码时是否有常见的做法?



LEATH
浏览 511回答 3
3回答

婷婷同学_

对于输入验证失败:400坏请求+你可选择的描述。这是在书中提出的“RESTful Web服务“.双重提交:409冲突有关的规范过去是RFC 2616,这使得400(不良请求)的使用范围很窄。由于格式错误,服务器无法理解请求。所以它强权有人认为这对语义错误是不合适的。但不再是了;自2014年6月以来,相关标准RFC 7231,它取代了以前的rfc 2616,从而使用了400(不良请求)更广泛地说由于被认为是客户端错误,服务器无法或不处理请求。

慕村225694

验证失败:403禁止(“服务器理解请求,但拒绝满足请求”)。与流行的观点相反,RFC 2616并没有说“403只用于失败的认证”,而是“403:我知道你想要什么,但我不会这么做”。该条件可能是也可能不是身份验证造成的。尝试添加一个复制:409冲突(“由于与资源的当前状态发生冲突,请求无法完成”)。您肯定应该在响应头和/或正文中给出更详细的解释(例如,使用自定义标头-X-Status-Reason: Validation failed).

牛魔王的故事

我建议状态代码422,“不可处理实体”.11.2.422个不可处理实体422(非处理实体)状态代码意味着服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法是正确的(因此400(坏请求)状态代码不合适),但无法处理所包含的指令。例如,如果XML请求体包含格式良好(即语法正确)但语义错误的XML指令,则可能出现此错误情况。
随时随地看视频慕课网APP
我要回答