当域规则无效时,put方法上的rest服务的http响应代码是什么

时间:2010-02-03 09:36:20

标签: rest

使用PUT方法更新资源时返回的最合适的响应代码是什么,并且请求包含一些会使域规则无效的数据?

例如,客户资源必须指定名称。如果代理尝试在不提供名称的情况下发出PUT ,我不想更新资源,我想告诉调用者他们需要提供名称

什么是HTTP响应代码?

3 个答案:

答案 0 :(得分:25)

422怎么样?

“422(不可处理的实体)状态代码表示服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码是不合适的),并且请求实体的语法是正确的(因此a 400(错误请求)状态代码是不合适的)但是无法处理包含的指令。例如,如果XML请求主体包含格式正确(即语法正确)但语义错误的XML指令,则可能发生此错误情况。 “

RFC 4918, Section 11.2

答案 1 :(得分:4)

我会返回400。严格来说,这是针对“格式错误的语法”(不是无效数据),但实际上YouTubeTwitter等将其用于更一般的“不良”请求。

答案 2 :(得分:3)

在这种情况下,响应代码与http方法无关。您应该返回相同的状态代码,就好像它是POST请求一样。我会说你应该使用400409注意:请参阅评论中有关两者之间差异的进一步讨论)。