属性不存在时发布/放置REST JSON API';不存在
我们正在构建公共的RESTfulJSONAPI,并试图找出当指定属性不存在时,POST/PUT请求的最佳实践。我们应该抛出一个HTTP错误和哪个错误,还是跳过它并应用所有其他属性属性不存在时发布/放置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
{
"name" : "Test",
"property_doesnt_exist" : "that's sad"
}
HTTP 422:不可处理的实体 422(不可处理实体)状态代码意味着服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法正确(因此400(坏请求)状态代码不合适),但无法处理包含的指令。例如,如果XML请求体包含格式正确(即语法正确)但语义错误的XML指令,则可能会出现这种错误情况
通常的做法是,如果邮件还包含无效的属性,则不添加有效的邮件属性。服务器的一个常见规则是对您接受的内容慷慨,对您生成的内容严格
我更愿意接受这样的意见,并从中获得尽可能多的好处。输入的任何未知属性都将被忽略当回答这个问题时,你也必须考虑版本控制。您是否支持发送的参数比预期少的旧客户机?这可以使用合适的默认值。或者您是否有多个服务器实现,使得较新的客户端会为较旧的服务器实现发送太多参数?如果其中一个答案是肯定的,那么您必须小心拒绝输入。我知道github跳过inavlid参数。你知道这背后的想法吗?这种常见做法在哪里?@LutzHorn在要求消息符合XML模式或某些消息描述的大多数关键应用程序中。@Max我同意LutzHorn的观点,即服务可以跳过无效参数。这可能是因为他们不认为无效语法对安全性/数据完整性构成威胁。或者他们想要更流畅的用户体验。