“为什么”没有骨干网没有保存(PUT / POST)方法为其催收 - 是它unRESTful?(“W

2019-09-20 20:06发布

我问了一个问题而回,即“如何保存整个骨干集合?” 。 然而是什么让我很感兴趣的是,为什么不提供一个节省的方法? 它是unRESTful保存(PUT / POST)整个集合或者是罕见的REST-地这样做呢?

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为什么不包括它? 我只是好奇它的缺失和相同的理由。 没有框架的几件事情的能力通常意味着不好的编程/设计,并因此冷落。 是节省整个集合“ 不好的做法 ”?

Answer 1:

关于REST的维基百科的文章确实提到收集CRUD动词 。

但是,在我看来,一个收藏是不是一种资源,它不是一个实体,它已不在状态。 它,相反,提供的大量资源。 如果有会为集合是UPDATE命令,它会是别的什么也不多UPDATE命令在多个模型。 有在只有一个要求多个UPDATE命令的可能性将是有益的,但我认为这不是对REST实现的工作。

也将有一个包含有ID已经保存的模型等集合歧义的问题,例如,和其他人没有什么会POST命令意味着什么呢?...或UPDATE命令?...

没有谈论复杂的服务器端的增加,其中,如果该集合REST支持应采取类似的标准,我们应该工作的双重实现的诡辩。

总结:我没有看到一个集合REST命令的需要不能实际解决,简单,只有-型号REST命令,因此保持事情尽可能的简单,我认为无论如何是个好习惯。



文章来源: “Why” does Backbone NOT have a save (PUT/POST) method for its collections - is it unRESTful?