骨干模型和集合是否应该具有相同的项目表示?

时间:2012-06-07 19:58:42

标签: web-services rest backbone.js api-design

假设我们有一个rest API来取回位于/ ​​items的一些项目,这些项目返回一个像这样的JSON数组

[ {....},{...},{...} .... {...}]

假设items / {id}返回id为{id}

的项目的表示形式

要进入第4项,可以通过两种方式进行:

案例1:获取/项目,然后搜索ID为#4的项目的回复

案例2: get / item / 4

案例1返回的表示是否应与案例2返回的表示相同?

编辑1 例如/ dogs可以返回一组狗资源,其中只填充名称和ID,/ dogs / 4可以返回狗资源的完整详细信息。

1 个答案:

答案 0 :(得分:3)

简短回答

您可以从Collection和Model中返回不同的结构。

答案很长

您可以随意返回JSON,Backbone将使用JSON提供的数据构建Model的实体,Backbone将使创建的实例适应所提供的数据,并将其与声明的{合并{1}}。

例如,您甚至可以为这两个查询返回不同的JSON结构:

  • /狗/ 1
  • /狗/ 2

我理解您的担忧,您正在尝试Model.defaults一堆数据细节非常低的对象,然后在需要时fetch获取具体实例的完整数据。

我没有看到任何问题。

尝试标记 未完成的模型,以便在详细设计视图中不使用它们而不提取整个数据。