在REST中,如果要替换整个集合,请使用:
PUT with /resourses
params=[{name:'Daniel', age:'19'}, {name: 'John', age: '17'}]
如果你想创建一个新项目,你可以使用:
POST with /resources
params={name:'Daniel', age:'19'}
我不想要它们中的任何一个,我想要的是在不需要调用的情况下向资源中添加许多项目
POST /resources
多次
我在找这样的东西:
STRANGEVERB /resources
params=[{name:'Daniel', age:'19'}, {name: 'John', age: '17'}]
将它们添加到现有集合
使用POST
,只需在服务器端检查数组或单个对象是否已POST。不要试图编造HTTP动词。
如果您觉得有必要在此处分离路由,请使用不同的URL。
我建议不要编造HTTP动词。如果要创建新对象,请使用POST
谓词。此外,批处理POST
不是一个好主意,因为每个对象可能由于不同的原因而失败或成功,这将发出不同的消息。现在你必须处理这些。
许多SaaS提供商(包括像37 Signals这样的顶级提供商)实现单个对象POST
s是有原因的。这样,您就可以单独处理每个对象。
如果您真的要执行批处理POST
s,那么请遵循RESTful方法并创建一个代表批处理的资源,并仅在内部运行对象处理,但成功创建时仍将返回一个代码,如201,如果是多状态响应,则返回207。
祝你好运。
我会遍历哈希数组并单独创建每个对象。这是最好的做法,这是有原因的,大卫。
persons = [{:name => "Joe", :age => 10},{:name => "Blow", :age => 10}]
persons.each do |person|
Person.create(person)
end