我正在使用Ember
/ Ember-Data
处理项目,并且有一个相关/现有服务,它提供带有JSON响应的API。
我的项目必须与该服务进行交互,但该API的响应如下所示:
{ "id": 39402, "name": "My Name" }
或
[ {"id": 38492, "name": "Other Name" } ]
person:
可兼容的回复不需要persons:
或Ember-Data
。
如何在Ember-Data
上使用此响应而无需更改服务或没有构建API网关?
答案 0 :(得分:1)
Ember-Data
使用DS.RestAdapter
,DS.RESTSerializer
使用从DS.JSONSerializer
扩展的extract
来序列化,提取和按摩来自服务器的数据。
因为在您的情况下,您已经拥有了有效负载中的数据,所以您需要为读取所做的一切都是JSONSerializer
覆盖ember-cli
方法非常简单。
如果您使用的是person.js
(您应该:),那么位于app/serializers
目录中的import DS from 'ember-data';
export default DS.JSONSerializer.extend({
extract: function(store, primaryType, payload) {
return payload;
}
});
文件将如下所示。
ember-cli
如果您未使用App.PersonSerializer = DS.JSONSerializer.extend({
extract: function(store, primaryType, payload) {
return payload;
}
});
,则可以执行以下操作:
{{1}}