我有以下 RESTful API:
GET/club/1.0/club.json?sport=FO&country=ES
此服务按运动和国家/地区提供俱乐部列表(例如:西类牙的足球)
GET/club/1.0/club.json?id=xxxx
此服务提供俱乐部的详细信息
在 Backbone.js 中,我为集合尝试了以下 URL:
http://localhost:3000/club/1.0/club.json
,
问题:
- 如何处理版本控制?
- 如何指定sport 和country 等必需参数?
对于我使用这个 urlRoot 的模型:
http://localhost:3000/club/1.0/club.json
,
我认为这很简单,因为保存方法会将 /: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()
。
更新:哦,对于版本控制,您可以使用变量而不是直接使用数字。
关于javascript - 如何将 RESTful API 映射到 BackboneJS 模型和集合中的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671205/