我可以对 Ember 数据使用正常(rails 默认值)JSON 响应吗?
Can I use normal (rails default) JSON response on Ember Data?
我正在使用 Ember
/Ember-Data
开发一个项目,并且有一个 related/already 现有服务提供 API 和 JSON 响应.
我的项目必须与该服务交互,但是 API 的响应如下所示:
{ "id": 39402, "name": "My Name" }
或
[ {"id": 38492, "name": "Other Name" } ]
Ember-Data
兼容响应不需要 person:
或 persons:
。
如何在不更改服务或不构建 API 网关的情况下在 Ember-Data
上使用此响应?
Ember-Data
使用 DS.RestAdapter
,后者又使用从 DS.JSONSerializer
扩展而来的 DS.RESTSerializer
来序列化、提取和处理来自服务器的数据。
由于在您的情况下,您的有效负载中已经有了数据,因此您需要为 读取 数据做的所有事情都是覆盖 [=17] 中的 extract
方法=]其实很简单。
如果您正在使用 ember-cli
(您应该:)),位于 app/serializers
目录中的 person.js
文件将如下所示。
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;
}
});
我正在使用 Ember
/Ember-Data
开发一个项目,并且有一个 related/already 现有服务提供 API 和 JSON 响应.
我的项目必须与该服务交互,但是 API 的响应如下所示:
{ "id": 39402, "name": "My Name" }
或
[ {"id": 38492, "name": "Other Name" } ]
Ember-Data
兼容响应不需要 person:
或 persons:
。
如何在不更改服务或不构建 API 网关的情况下在 Ember-Data
上使用此响应?
Ember-Data
使用 DS.RestAdapter
,后者又使用从 DS.JSONSerializer
扩展而来的 DS.RESTSerializer
来序列化、提取和处理来自服务器的数据。
由于在您的情况下,您的有效负载中已经有了数据,因此您需要为 读取 数据做的所有事情都是覆盖 [=17] 中的 extract
方法=]其实很简单。
如果您正在使用 ember-cli
(您应该:)),位于 app/serializers
目录中的 person.js
文件将如下所示。
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;
}
});