第二种方法绝对是我认为的方法,它可以减少延迟并节省带宽,因为如果将它与大量模型一起使用,因为所有HTTP(标题等)将只发送一次。
在您的控制器,使用这样的(它可能无法正常工作,我没有访问任何Laravel安装到测试):
public function postCollection() {
$collection = Input::get("collection");
DB::transaction(function() {
foreach ($collection as $data) {
// In this example we assume it's a collection of users
// Of course in a real app you would also do input validation
$user = User::create(["name" => $data->name, "email" => $data->email]);
}
})
// Example success response, will be automatically serialized to JSON
return ["status" => "success"];
}
这个循环在你的JSON输入collection
元素,这应该是一个模型列表。那么它显然应该做验证和其他可能的东西。整个循环被包装到一个DB::transaction()
中,如果内部发生异常,它将回滚所有内容。
我脑子里有同样的想法。尽管如此,我不确定REST的架构风格概念是否受到尊重。无论如何,我接受这个答案,谢谢你的帮助! – Trace
@KimGysen通过使用PUT请求我认为它是REST兼容的。 –