1

我们有一个内部 API,专门用于与我正在构建的在 Backbone 上运行的新软件一起使用。API 有一个 URL,并将 JSON 作为输入来确定它需要返回的内容。它本质上允许我使用 JSON 构建自定义查询,这些查询完全返回我正在寻找的内容。

问题是这个 JSON 会变得非常冗长,通常有 3-4 级深,但有时可能只有几行,只有 1 级深。

首先是第一个问题:当我执行 a 时,如何发送一串 JSON 和 ID fetch()?我是否必须将这些参数设置为模型或集合的默认值?

这是一个获取特定用户信息的非常简单的字符串示例

{
    "which" : "object",
    "object" : {
        "type" : "customer",
        "place" : "store",
        "customerID" : "14"
    }
}
4

1 回答 1

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();
于 2013-09-08T14:45:30.760 回答