我有以下RESTful API:GET /club/1.0/club.json?sport=FO&country=ES
这项服务列出了按运动和国家划分的俱乐部清单(例如:西班牙的足球)GET /club/1.0/club.json?id=xxxx
该服务提供了俱乐部的详细信息
在Backbone.js中,我尝试以下URL作为Collection:http://localhost:3000/club/1.0/club.json
,
问题:
如何处理版本控制?
如何指定运动和国家/地区所需的参数?
对于模型,我使用以下urlRoot:http://localhost:3000/club/1.0/club.json
,
我认为这很容易,因为save方法会将/:id添加到可与ExpressJS服务器一起使用的urlRoot中。
谢谢您的回答。
最佳答案
您应该在集合/模型中使用Backbone sync进行设置。例:
采集:
var ClubCollection = Backbone.Collection.extend({
model: ClubModel,
sync: function(method, collection, options){
options = _.extend({}, options, {url: 'club/1.0/club.json');
return $.ajax(options);
}
});
模型
var ClubModel = Backbone.Model.extend({
sync: function(method, model, options){
options = _.extend({}, options, {url: 'club/1.0/club.json');
switch (method) {
case 'read':
options.data = _.extend({}, options.data, {
id: model.id
});
break;
// case 'delete':
// break;
// case 'update':
// break;
// case 'create':
// break;
}
return $.ajax(options);
}
});
然后使用
yourCollection.fetch({data:{sport:'FO',country:'ES'}})
发出请求。对于您的模型可以是myModel.set('id', 1).fetch()
。更新:哦,对于版本控制,您可以直接使用变量而不是数字。