属性不存在时发布/放置REST JSON API';不存在

属性不存在时发布/放置REST JSON API';不存在,json,api,rest,post,put,Json,Api,Rest,Post,Put,我们正在构建公共的RESTfulJSONAPI,并试图找出当指定属性不存在时,POST/PUT请求的最佳实践。我们应该抛出一个HTTP错误和哪个错误,还是跳过它并应用所有其他属性 { "name" : "Test", "property_doesnt_exist" : "that's sad" } HTTP 422:不可处理的实体 422(不可处理实体)状态代码意味着服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法正确(因此400

我们正在构建公共的RESTfulJSONAPI,并试图找出当指定属性不存在时,POST/PUT请求的最佳实践。我们应该抛出一个HTTP错误和哪个错误,还是跳过它并应用所有其他属性

{
    "name" : "Test",
    "property_doesnt_exist" : "that's sad"
}

HTTP 422:不可处理的实体

422(不可处理实体)状态代码意味着服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法正确(因此400(坏请求)状态代码不合适),但无法处理包含的指令。例如,如果XML请求体包含格式正确(即语法正确)但语义错误的XML指令,则可能会出现这种错误情况


通常的做法是,如果邮件还包含无效的属性,则不添加有效的邮件属性。

服务器的一个常见规则是对您接受的内容慷慨,对您生成的内容严格


我更愿意接受这样的意见,并从中获得尽可能多的好处。输入的任何未知属性都将被忽略我知道github跳过inavlid参数。你知道这背后的想法吗?这种常见做法在哪里?@LutzHorn在要求消息符合XML模式或某些消息描述的大多数关键应用程序中。@Max我同意LutzHorn的观点,即服务可以跳过无效参数。这可能是因为他们不认为无效语法对安全性/数据完整性构成威胁。或者他们想要更流畅的用户体验。