我创建了一个新的RestAdapter。
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
namespace: 'api',
host: 'http://localhost:8081'
});
如果我查看网络调用,api会被正确调用并返回此数据。
{
"environments": [
{
"Id": 1,
"LocalePath": "C:\\XML_DEPOT",
"Name": "Acceptation 1",
"RemotePath": "D:\\XML_DEPOT",
"DatabaseServerName": "somedata",
"DatabaseName": "somedata",
"Port": 60903
},
{
"Id": 2,
"LocalePath": "bob",
"Name": "Acceptation 2",
"RemotePath": "bob",
"DatabaseServerName": "somedata\\somedata",
"DatabaseName": "somedata",
"Port": 60904
}
]
}
然后我收到错误说
断言失败:normalizeResponse必须返回有效的JSON API 文件
但据我所知,适配器不是JSONAPIAdapter所以它不应该尝试序列化它有一个jsonapi ??
答案 0 :(得分:1)
Ember Data自版本1.13开始在内部使用JSON Api规范described in release notes。 DS.RestAdapter"的normalizeResponse
方法用于将有效负载从服务器规范化为JSON-API文档。"
您的有效负载看起来不像默认情况下除了Ember数据之外的RestAdapater。 RestAdapter需要camelCase键,但你的是CamelCase。您必须自定义序列化程序keyForAttribute
方法才能使其正常工作。