我有一个API服务器,它具有不同的列表,具体取决于它是否拉动所有用户或单个用户,例如:
GET /users/
返回:
id: 1
name: Name One
username: nameone
id: 2
name: Name Two
username: nametwo
GET /users/1
返回:
id: 1
name: Name One
username: nameone
location: Street 1, City One
devices: [device1, device2]
单个用户列表中发生的事情是关联,即我的user
表只有id
,name
和username
,而{{1} }和location
是具有devices
列`的单独表格。
如何在Ember中定义这样的模型?我是否定义了所有字段并将其留空以获取完整列表?或者我是否需要更改后端API服务器以使其适应Ember的工作方式(不理想)?理想情况下,我希望将我的Ember模型与我从API服务器中提取的数据相符,而不是与数据库中的数据相符,如果这有用的话。
谢谢你的时间!
答案 0 :(得分:1)
您应始终为每个用户包含相同的有效负载(在/ users和/ user端点中包含设备[或仅包含其ID])。
想象一下,首先从/ users获取USER_1的响应(不完整 - 没有设备),然后转到/ users / 1。 Ember Data已经加载了USER_1,因此它不会向您的API发出请求。 USER_1将被视为已满载。检查哪些记录部分加载(并重新加载)以及哪些记录是完全加载的将是一团糟。
除非每个用户或更多用户拥有数百台设备,否则您不必担心性能太高。如果是这种情况,为什么你没有为/ users包含设备。
如果您真的想为/ users包含小的有效负载,则只能为设备发送ID。这样,Ember Data只会在需要时懒洋洋地加载设备。