从角度资源创建用户资源类是很好的方式,所有用户都成为用户的一个实例。这简化了每个人的CRUD。但它只有在响应是数组时才有效
这是一个简单的演示(inspired by angular)
// Define User class
var User = $resource('/user/:userId', {userId: '@id'}, {
query: {method: 'GET', isArray: true, params: {limit: 25} }
});
// We can retrieve a collection from the server
var users = User.query(function() {
// GET: /user?limit=25
// server returns: [ {id:456, name:'jimmy'}, {...} ];
var user = users[0];
// each user is an instance of User
expect(user instanceof User).toEqual(true);
user.relation = "Single";
// non GET methods are mapped onto the instances
user.$save();
});
我在我的日子里已经看到了很多API,这将是他们全部批量合作的一个例子。 (甚至包括响应状态200 OK,另一个状态代码和错误消息)
{
errors: null,
status: 200
data: {
href: "/user?limit=30&offset=100&online=true",
offset: 100,
limit: 25,
totalItems: 987,
totalPages: 45, // Math.celi(totalItems / limit)
currentPage: 4,
first: { href: "/user?limit=25&online=true" },
previous: { href: "/user?limit=25&offset=75&online=true" },
next: { href: "/user?limit=25&offset=125&online=true" },
last: { href: "/user?limit=25&offset=975&online=true" },
items: [
{id: 456, name: "jimmy"}
]
}
}
如果这是一个公共API,您是否希望在json响应中提供所有/部分信息?我个人认为这种绘制和不必要的服务器工作可能会或可能不会被所有用户使用
我可能只想使用范围请求标头进行某种206部分内容响应,我只将其用于文件字节。但也可以使用任何其他类型的收藏品吗?
Range: user=75-100,600- ;get user 75 to 100 and 600 to 978
不是206的全部内容吗?