Dostęp do złożonych zasobów REST za pomocą Ext JS
Uzyskuję dostęp do usługi REST, która udostępnia te dwa zasoby, zasób nadrzędny i zasób podrzędny:
/users
/users/{userId}/account
Zatem „konto” zasobu nie jest zagnieżdżone w „użytkowniku” zasobu, musi być dostępne przez drugie żądanie. Istnieją przykłady takich API REST, np.tutaj
Używam tych modeli do mapowania użytkowników i ich kont do modelu danych Ext Js 4:
Użytkownik
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"
}
}
});
Konto
Ext.define("MyApp.model.Account", {
extend: "Ext.data.Model",
fields: [ { name: "id", type: "string" }],
belongsTo: "MyApp.model.User",
proxy: {
type: "rest",
reader: { type: "json"}
}
});
Serwer proxy konta nie ma adresu URL (miałem nadzieję, że zostanie utworzony na podstawie macierzystego modelu użytkownika). Po wywołaniu user.getAccount () otrzymuję wyjątek, ponieważ serwer proxy nie ma adresu URL.
Pytanie: Czy jest jakiś sposób na skonfigurowanie takich modeli, że Ext Js uzyska dostęp / users / {userId} / account BEZ ręcznego aktualizowania adresu URL konta dla każdego nadrzędnego identyfikatora użytkownika?