如何使用ExtJS 5访问复杂的REST资源

时间:2014-11-10 18:56:34

标签: rest extjs extjs5

我正在使用ExtJS 5,我想按照in this similar thread using ExtJS 4的说法访问复杂的REST资源。

我正在访问的REST服务公开了这些资源:

  • 获取/rest/clients - 它返回客户列表
  • 获取/rest/users - 它会返回所有用户的列表
  • GET /rest/clients/{clientId}/users - 它返回指定客户端的用户列表。

我有这些模特:

Ext.define('App.model.Base', {
    extend: 'Ext.data.Model',
    schema: {
        namespace: 'App.model'
    }
});

Ext.define('App.model.Client', {
    extend: 'App.model.Base',

    fields: [{
        name: 'name',
        type: 'string'
    }],

    proxy: {
        url: 'rest/clients',
        type: 'rest'
    }
});

Ext.define('App.model.User', {
    extend: 'App.model.Base',

    fields: [{
        name: 'name',
        type: 'string'
    },{
        name: 'clientId',
        reference: 'Client'
    }],

    proxy: {
        url: 'rest/users',
        type: 'rest'
    }
});

我这样做了:

var client = App.model.Client.load(2);
var users = client.users().load();

它分别发送了:

  

// GET rest / clients / 2
  // GET rest / users?filter:[{“property”:“personId”,“value”:“Person-1”,“exactMatch”:true}]

的问题:

  1. 有没有办法将我的请求发送到“GET rest/clients/2/users,而不使用clientId手动更新用户代理网址?
  2. 如何在不丢失App.model.User中定义的原始网址的情况下发送上述请求,“rest/users

1 个答案:

答案 0 :(得分:0)

我认为这与这个问题基本相同:

Accessing complex REST resources with Ext JS

自从第一次被问及以来,我认为没有太大的变化。