我正在使用 AngularJs Framework 开发单页应用
该网站是一种社交网络,因此包含从服务器获取的各种种数据。
成为RESTful并使每个实体成为'资源'或实现其他方式获得'聚合JSON'响应是否合适,因为RESTful会导致过多的调用?
如果使用非RESTful方法(例如使用$http
服务),那么我如何仍然维护app的模块化架构。
考虑澄清的例子:
让服务器返回:
{
user: {
name: ....
....,
projects: [{
....
....
}],
...
}
}
如何创建User
和Projects
等模块,每个模块都有自己的功能,逻辑上独立且独立。
它与发出单个$http
请求和向许多服务分发响应几乎相似。
任何帮助表示赞赏。
答案 0 :(得分:0)
免责声明 - 我绝不是REST专家或纯粹主义者
这是一个非常好的问题,我也在努力解决这个问题。我无法证明有X个REST调用来显示单个表单/页面,其中X有时可能相当大。我最终得到的解决方案似乎在我的案例中运作得相当好,这是一种混合方法。我使用聚合(视图模型)来呈现表单/页面,这些视图模型是通过单个API调用从服务器获得的。对于创建/更新/删除操作,我从客户端上的View Model中提取实际资源,并使用更RESTful方法发布它。
这给了我两全其美,显示页面的API调用数量少,帖子上的RESTful方法减少了网络开销。
除了上面的内容之外,我使用了我在breeze.js文档中看到的方法,它看起来效果也很好,在应用程序启动时我加载了所有常用的静态查找数据(通常用于下拉列表/选择列表的数据) )在单个LookupsAggregate中并缓存客户端上的那个。此模型从一开始就可用,无需在每次需要显示下拉列表/选择列表时重新获取它们。