【发布时间】:2012-07-25 22:59:00
【问题描述】:
在 Backbone 中,它是 seems to be encouraged that collection resources return bare arrays。这似乎是driven by the Rails model of doing things,这不是做某事的充分理由根本。我对此有一些问题:
- 通常,“集合”资源还需要围绕它的上下文。至少,我喜欢在响应中包含资源 URI 的约定。其他内容,如分页、小计(例如在购物车中)等,意味着集合很少“裸露”。
- 据说裸阵列存在安全问题。我在一些地方听说过,但需要一些参考资料来确认。
另一方面,我可以看到“裸”数组如何使 API 更自然:
- 集合中每个对象的格式往往与在该集合中创建/更新对象时的格式相同。
- “集合”在语义上很好地映射到项目集合的概念。
免责声明:这里的前提可能完全有缺陷。我意识到 REST 不仅仅是 HTTP 动词和 JSON。
【问题讨论】:
-
有趣的讨论,Jon... 我曾经以几乎相同的方式思考收藏;特别是关于你的第一句话。但我开始将集合仅视为另一个界面,用于将资源数据呈现为类似项目的集合。这可以作为一个数组或一个对象来找我。我有责任将其呈现为类似项目的列表;这就是 Collection.parse 无价的地方。让一个单独的同步对象来处理实际的 CRUD 操作也很有意义,它强制执行集合仅代表后端数据的想法。
标签: rest collections backbone.js hypermedia