我的后端回复find all
次请求:
User.find();
喜欢这个
{ 'users' : [ user1_obj, user2_obj ] }
Ember-data很高兴。现在如果我做一个简单的单个对象找到:
User.find('user1');
我尝试配置后端以返回以下任何内容:
user1
{ 'user1' : user1_obj }
{ 'user' : { 'user1' : user1_obj } }
{ 'user' : user1_obj }
但这些都没有奏效。在回复find("obj-id")
请求时,我应该从后端返回什么内容?根据有关JSON ROOT的文档,正确的格式如下:
{ 'user' : user1_obj }
Ember没有抱怨它,但处理的Ember Objects有一个非常奇怪的结构,如下所示:
如您所见,_reference.record
指的是最高记录。此外(此处未显示)_data
字段为空。
什么可能导致奇怪的嵌套?
由mavilein在他的回答中链接,JSON API建议使用不同的format来表示单数资源:
{ 'users' : [user1_obj] }
这意味着,与多个资源的格式相同。不确定Ember是否会吞下它,我现在就检查一下。
答案 0 :(得分:1)
在specification之后,我会怀疑以下内容:
{
'users' : [{
"id": "1",
"name" : "John Doe"
},{
"id": "2",
"name" : "Jane Doe"
}]
}
对于单一资源,规范说:
奇异资源表示为JSON对象。但是,他们是 仍然包裹在一个数组中:
{
'users' : [{
"id": "1",
"name" : "John Doe"
}]
}
答案 1 :(得分:1)
使用User.find()
将期望rootKey复数并在您的内容中包含一个元素数组,响应格式为以下json:
{
users: [
{ id: 1, name: 'Kris' },
{ id: 2, name: 'Luke' },
{ id: 3, name: 'Formerly Alex' }
]
}
使用User.find(1)
rootKey以单数形式,只有一个对象:
{
user: {
id: 1, name: 'Kris'
}
}