【发布时间】:2016-04-11 21:16:56
【问题描述】:
我有一个由 NodeJS 提供给 AngularJS 前端的 REST api。
我与users 合作:
GET /api/users #Returns all users
POST /api/users #Create new user
GET /api/users/:id #Return a user
PUT /api/users/:id #Edit a user
DELTE /api/users/:id #Delete a user
这是一个用户:
{
login : "admin"
email : "admin@admin.com"
pass : "hashedpassword"
...
}
我的用户可以属于groups
GET /api/users/:id/groups #Return the groups of a user
他们也可以拥有constraints 或者可以从他们的组中继承constraints
GET /api/users/:id/constraints #Return the constraints of a user
GET /api/groups/:id/constraints #Return the constraints of a group
问题:
我正在制作一个管理页面,显示所有用户、他们的组、他们的约束。
我应该:
- 在 javascript (Angular) 前端的 for 循环中发出许多请求?
类似:
$http.get(/api/users).then(function(result) {
result.data.forEach(function(user) {
$http.get('/api/users/'+user.data.id+'/groups).then(function(groups) {
groups.forEach(function(group) {
$http.get('/api/groups/'+group.data.id+'/constraints)
})
})
})
})
- 创建路径
/api/users/withConstraintsAndGroups
这将返回一个包含所有用户及其组和约束的大列表。
我发现解决方案 1 非常好、可维护、简单且通用,但我担心性能很差
我发现解决方案 2 丑陋、难以维护、难以编码、不通用但性能良好
我应该选择哪种解决方案?
【问题讨论】:
-
您已经确定了每种方法的优缺点。你现在必须做出决定。征求我们的意见是题外话。
标签: javascript angularjs node.js api rest