使用非标准REST API的Ember数据
Using Ember Data with non standard REST API
我正在尝试连接Ember Data以使用现有的REST API。我遇到的问题是REST实现不符合EmberData期望的方式。我在网上搜索了一些文档,这些文档可以建议如何使事情正常工作,但由于没有编写自己的DS.Adapter实现,我不知所措。
以下是我的请求:
/api/user/12345
它提供以下响应:
{
data: {
ID: '12345',
firstName: 'Fred',
lastName: 'Flintstone',
emailAddr: 'fred.flintstone@example.com'
}
}
Ember期望"数据"是"用户"。遗憾的是,我无法轻松更改API。有什么建议吗?
感谢
我认为可以实现这一点的一种方法是创建自己的序列化程序并覆盖extract
函数:
App.RESTSerializer = DS.RESTSerializer.extend({
extract: function(loader, json, type, record) {
var root = 'data';
if (json[root]) {
if (record) { loader.updateId(record, json[root]); }
this.extractRecordRepresentation(loader, type, json[root]);
}
}
});
App.Store = DS.Store.extend({
adapter: DS.RESTAdapter.extend({
serializer: App.RESTSerializer.create()
})
});
请注意,此修改假设您的请求内容将始终位于JSON的
data
密钥下。
还值得一提的是,原始的extract
方法有两行未包含在示例中:
this.sideload(loader, type, json, root);
this.extractMeta(loader, type, json);
这会使您失去side loading
功能和metadata
提取。我希望失去这个功能并不是你的用例的一个展示停止。
希望能有所帮助。
相关文章:
- 有人能提供一张ember数据与broswer's的持久层
- Ember数据:DS.EmbeddedRecordsMixin的预期使用模式
- 如何在ember数据模型中表示数组
- Ember数据:如何;映射”;工作
- 加载json时出现Ember.js和Ember数据错误
- Ember数据一对多关系不起作用
- 如何在路线中使用空白Ember数据模型
- Ember数据帮助!无法将JSON反序列化为模型
- 在高延迟网络下使用Ember数据时的奇怪行为
- Ember数据:DS.attr(“数字”)应该如何工作
- Ember.js Ember数据呈现双嵌套hasMany关系
- Ember数据:在DS.Store.createRecord上刷新模型
- emberjs ember数据和jasmine测试
- 从外部重新加载Ember数据
- Ember数据FixtureAdapter hasmany-无法调用方法'toString'的未定义
- find()和getById()之间的Ember数据差异
- 获取元数据时出现 Ember 数据奇怪的问题
- Ember 数据模型数组并不总是有数据
- 如何将使用 getter 检索到的 Ember 数据放入临时变量中进行处理
- 加载 Ember 数据时捕获事件