在发送POST请求时,我应该以哪种方式创建对象列表

时间:2014-03-10 12:58:25

标签: rest http-post django-rest-framework

当我创建相同类型的对象并将它们保存到数据库中时,我应该在一个请求中发送该对象的列表,还是应该为每个对象单独发送?

例如,我想创建一个待办事项列表,我可以创建多个待办事项,然后单击保存以发送待办事项列表,或者当我完成编辑一个待办事项时,我直接保存它。

第一种方法可以保存请求编号,只需要一个创建许多对象的请求。但是RESTful的第一种方式是什么?有关在REST中创建的所有信息都是创建一个对象,但如果增加请求数量会有问题吗?

----修改

谢谢你们回答我。

对于更具特色的用例,我使用的是Django Rest Framework。我创建了一个Todo模型和一个相应的序列化器。我想知道,我怎么能创建Todos列表?我试图将Todos列表发送到序列化程序,并期望序列化程序可以像获取实例列表一样自动循环遍历它。但这不起作用。我知道我可以创建一个循环来每次调用create方法。但有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

REST中没有任何内容可以告诉您允许使用哪种有效负载。您可以在列表,词典,XML,URL编码的键/值或JSON中以任何方式POST / PUT - 一个实体表示或多个表示,最适合您的用例。

在您的情况下,您甚至可能希望在客户端上发送更改/差异更改列表:例如,假设您的客户端加载了一些现有的3个待办事项。然后用户修改其中一个,删除另一个并添加一个新的。您可以在三个请求中执行此操作,也可以在其中编码添加/修改/删除操作的单个请求中执行此操作。两种方式都是有效的,最佳解决方案取决于您的使用案例和带宽,处理能力和网络往返时间等限制。