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

rot*_*ine 12 rest

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

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

什么HTTP响应代码?

Jul*_*hke 25

422怎么样?

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

RFC 4918,第11.2节

  • 嗯,这也不代表你不能.我之前与RFC 2616的作者讨论过,他同意422是一件好事,绝对可以在WebDAV之外使用.如果您不同意,我建议您加入HTTPbis工作组,除其他事项外,还要包括在必要时澄清现有的扩展点. (7认同)
  • 这是 WebDav 的一部分,/不是/标准 HTTP。 (2认同)
  • 马修,这个评论没有意义.HTTP中的状态代码是可扩展的,以及为什么有IANA注册表的原因. (2认同)

tro*_*skn 4

在这种情况下,响应代码与 http 方法无关。您应该返回与 POST 请求相同的状态代码。我想说你应该使用400or 409(注意:请参阅评论中对两者之间差异的进一步讨论)。