0

在 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'}]

将它们添加到现有集合中

4

3 回答 3

1

使用POST,只需在服务器端检查是否已发布数组或单个对象。不要尝试编造 HTTP 动词。

如果您觉得有必要在此处分隔路由,请使用不同的 URL。

于 2012-07-10T18:18:39.620 回答
0

我建议不要编造 HTTP 动词。如果您正在创建新对象,请使用POST动词。此外,批处理POST并不是一个好主意,因为每个对象都可能由于不同的原因而失败或成功,这会发出不同的消息。现在你必须处理这些。

许多 SaaS 提供商(包括像 37 Signals 这样的顶级提供商)实现单个 object 是有原因POST的。这样你就可以单独处理每一个。

如果您真的打算做批处理POST,那么请遵循 RESTful 方法并创建一个代表批处理的资源并在内部运行对象处理,但是您仍然会在成功创建时返回单个代码,如 201 或 207 如果它是多状态响应。

祝你好运。

于 2012-07-10T19:33:15.610 回答
0

我会遍历散列数组并单独创建每个对象。大卫,这是最好的做法是有原因的。

persons = [{:name => "Joe", :age => 10},{:name => "Blow", :age => 10}]
persons.each do |person|
  Person.create(person)
end
于 2012-07-10T21:40:07.767 回答