我们有一个专门构建的内部API,用于构建在Backbone上运行的新软件。 API具有单个URL并将JSON作为输入以确定它需要返回的内容。它本质上允许我使用JSON构建自定义查询,返回我正在寻找的内容。
事情就是这个JSON可以变得非常冗长并且通常是3-4级深度,但有时可能只是几行而只有1级深。
第一个问题:当我fetch()
时,如何发送一串JSON和ID?我是否必须将这些参数设置为模型或集合的默认值?
以下是获取特定用户信息的非常简单的字符串示例
{
"which" : "object",
"object" : {
"type" : "customer",
"place" : "store",
"customerID" : "14"
}
}
答案 0 :(得分:1)
正如其他人所说,使用SOAP可能会遇到挑战,但这不应该是不可能的。骨干模型和集合通过sync
操作与服务器通信;你应该能够自定义它。我认为沿着这些方向的东西可能会让球滚动(对于模型):
Backbone.SoapyModel = Backbone.Model.extend({
sync: function(method, model, options) {
// force POST for all SOAP calls
method = 'create';
options = _.extend(options, {
// Setting the data property will send the model's state
// to the server. Add whatever complexity is needed here:
data: JSON.stringify({
"which" : "object",
"object" : model.toJSON()
}),
// Set the request's content type
contentType: 'application/json'
});
// Defer the rest to Backbone
return Backbone.sync.apply(this, [method, model, options]);
}
});
var SoapyModelImpl = Backbone.SoapyModel.extend({
url: '/test'
});
var soapTest = new SoapyModelImpl({
id: 42,
name: 'bob',
address: '12345 W Street Dr',
phone: '867 5304'
});
soapTest.fetch();