| Model.create | /api/foo | POST |
| Model.save | /api/foo | PUT |
| Model.destroy | /api/foo | DELETE |
| Collection.fetch | /api/foo | FETCH |
ただ、これをAPI仕様に合わせる為に以下のように変更する。
| Model.create | /api/add | POST |
| Model.save | /api/dedit | POST |
| Model.destroy | /api/delete | POST |
| Collection.fetch | /api/read | POST |
Collectionはextend時に以下のようなrequestInfoオブジェクトとsyncメソッドを指定。
app.Library = Backbone.Collection.extend({
model : app.Book,
url : "/api/books",
requestInfo : {
'read' : {type: 'POST', url: "/api/books/read"}
},
sync: function(method, model, options){
options.url = this.requestInfo[method].url;
options.type = this.requestInfo[method].type;
Backbone.sync(method, model, options);
}
});Modelはextend時に以下のようなrequestInfoオブジェクトとsyncメソッドを指定。
(サーバーのせっていによってはemulateJSONの指定は不要)
app.Book = Backbone.Model.extend({
requestInfo : {
'create': {type: 'POST', url: "/api/books/add"},
'update': {type: 'POST', url: "/api/books/edit"},
'delete': {type: 'POST', url: "/api/books/delete"}
},
sync: function(method, model, options){
options.url = this.requestInfo[method].url;
options.type = this.requestInfo[method].type;
options.emulateJSON = true;
if(model)options.data = model.toJSON();
Backbone.sync(method, model, options);
}
});タグ:Backbone.js
