AngularJs SPA的聚合数据与RESTful资源

时间:2014-03-06 08:09:48

标签: angularjs rest aggregation

我正在使用 AngularJs Framework 开发单页应用 该网站是一种社交网络,因此包含从服务器获取的各种种数据
成为RESTful并使每个实体成为'资源'或实现其他方式获得'聚合JSON'响应是否合适,因为RESTful会导致过多的调用?

如果使用非RESTful方法(例如使用$http服务),那么我如何仍然维护app的模块化架构。

考虑澄清的例子:

让服务器返回:

{  
  user: {  
         name: ....  
               ....,  
         projects: [{  
                     ....
                     ....  
         }],  
         ...  
  }  
}  

如何创建UserProjects等模块,每个模块都有自己的功能,逻辑上独立且独立。
它与发出单个$http请求和向许多服务分发响应几乎相似。
任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

免责声明 - 我绝不是REST专家或纯粹主义者

这是一个非常好的问题,我也在努力解决这个问题。我无法证明有X个REST调用来显示单个表单/页面,其中X有时可能相当大。我最终得到的解决方案似乎在我的案例中运作得相当好,这是一种混合方法。我使用聚合(视图模型)来呈现表单/页面,这些视图模型是通过单个API调用从服务器获得的。对于创建/更新/删除操作,我从客户端上的View Model中提取实际资源,并使用更RESTful方法发布它。

这给了我两全其美,显示页面的API调用数量少,帖子上的RESTful方法减少了网络开销。

除了上面的内容之外,我使用了我在breeze.js文档中看到的方法,它看起来效果也很好,在应用程序启动时我加载了所有常用的静态查找数据(通常用于下拉列表/选择列表的数据) )在单个LookupsAggregate中并缓存客户端上的那个。此模型从一开始就可用,无需在每次需要显示下拉列表/选择列表时重新获取它们。