我回答了一个问题,"How save an entire backbone collection?"。然而,令我感兴趣的是,为什么不提供保存方法?保存(PUT / POST)整个集合是不是没有意义,或者在REST-land中这样做是不常见的?
GET: /MySite/Collections - allowed by collection.fetch()
POST: /MySite/Collections - for the model(s) in the collection to be Posted when calling model.save()
PUT: /MySite/Collections/{id} - for the model(s) to be updated individually
GET: /MySite/Collections/{id} - to fetch an individual model throuth model.fetch()
那么为什么不允许POST / PUT整个资源集合呢?有时很方便,虽然可以使用collection.toJSON
包装/破解一些代码但为什么不包括它?我只是对它的缺席以及相同的理由感到好奇。不具备某些功能的框架通常意味着糟糕的编程/设计,因此被排除在外。是保存整个集合'不良做法'吗?
答案 0 :(得分:3)
关于REST的维基百科文章有mention CRUD verbs for collection。
但是,在我看来,Collection不是一个资源,它不是一个实体,它没有说明。相反,它是束的资源。如果对于Collection有一个 UPDATE 命令,那么除了多个模型上的多个 UPDATE 命令之外别无其他。只在一个请求中有多个 UPDATE 命令的可能性会有所帮助,但我认为这不是REST实现的工作。
此外还会出现歧义问题,例如在包含已保存 id 的模型等的集合中,以及其他不包含的< em> POST 命令是指?...还是 UPDATE 命令?...
没有谈论服务器端复杂性的增加,如果这个Collection REST支持应该像标准一样,我们应该使用double来完成casuistic。
总结:我没有看到任何需要使用实际的,更简单的,只有模型的REST命令来解决Collection REST命令的情况,所以保持事情尽可能简单我认为是好的习惯。