4

不久前我问了一个问题,即“如何保存整个骨干集合?” . 然而让我感兴趣的是为什么不提供保存方法?保存(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为什么不包含它来包装/破解一些代码?我只是好奇它的缺席和同样的理由。不具备某些功能的框架通常意味着糟糕的编程/设计,因此被排除在外。保存整个集合是“不好的做法”吗?

4

1 回答 1

3

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

但是,在我看来,集合不是资源,它不是实体,也没有状态。相反,它是一堆资源。如果一个集合有一个UPDATE命令,那么它只不过是多个模型上的多个UPDATE命令。仅在一个请求中拥有多个UPDATE命令的可能性会有所帮助,但我认为这不是 REST 实现的工作。

还会有歧义的问题,例如在包含已保存模型的集合中, id等,而其他不包含的,POST命令意味着什么?...或UPDATE命令?...

更不用说服务器端的复杂性增加了,如果这个 Collection REST 支持应该像标准一样,我们应该加倍工作来完成推理。

总结:我没有看到任何情况下无法使用实际的、更简单的、仅模型的 REST 命令来解决对 Collection REST 命令的需求,所以我认为让事情尽可能简单是一个好习惯。

于 2012-08-05T20:49:35.350 回答