我可以对 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;
  }
});