Я обращаюсь к службе REST, которая предоставляет эти два ресурса, родительский ресурс и дочерний ресурс:
/users
/users/{userId}/account
Таким образом, ресурс "учетная запись" не вложен в ресурс "пользователь", к нему должен быть обращен второй запрос. Существуют примеры для таких API REST, например. здесь
Я использую эти модели для сопоставления пользователей и их учетной записи с моделью данных Ext Js 4:
Пользователь
Ext.define("MyApp.model.User", {
extend: "Ext.data.Model",
fields: [ { name: "id", type: "string" }],
associations: [{
model: "MyApp.model.Account",
name: "account",
type: "hasOne",
reader: "json",
getterName: "getAccount",
setterName: "setAccount",
foreignKey: "accountId"
}
],
proxy: {
type: "rest",
url: "/rest/users",
reader: {
type: "json",
totalProperty: "total",
root: "users"
}
}
});
Счет
Ext.define("MyApp.model.Account", {
extend: "Ext.data.Model",
fields: [ { name: "id", type: "string" }],
belongsTo: "MyApp.model.User",
proxy: {
type: "rest",
reader: { type: "json"}
}
});
Прокси-сервер учетной записи не имеет URL-адреса (я надеялся, что это будет создано на основе модели родительского пользователя). Когда я вызываю user.getAccount(), я получаю исключение, потому что прокси отсутствует URL-адрес.
Вопрос. Есть ли способ настроить модели таким образом, чтобы Ext Js получал доступ /users/ {userId}/account БЕЗ обновления URL-адреса прокси-сервера вручную с каждым родительским пользователем?