我有以下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()

更新:哦,对于版本控制,您可以直接使用变量而不是数字。

10-08 03:26