根据spec,resource identifier objects不包含属性。
我想做一个POST来创建一个包含其他嵌套资源的新资源。 这些是基本资源:分会(名称)和许多职位( type )。想想一个有守门员,守门员,前锋,前锋等位置的足球俱乐部。
当我进行此关联时,我想设置一些属性,例如此特定团队所需的位置。例如,我只需要一名门将,但我想拥有一支拥有许多后备守门员的球队。当我在DB中对这些实体进行建模时,我将在链接表中设置所需的属性。
这不符合JSON API:
json
{
"data": {
"type": "club",
"attributes": {
"name": "Backyard Football Club"
},
"relationships": {
"positions": {
"data": [{
"id": "1",
"type": "position",
"attributes": {
"required": "true"
}
}, {
"id": "1",
"type": "position",
"attributes": {
"required": "false"
}
}
]
}
}
}
}
这也无效:
json
{
"data": {
"type": "club",
"attributes": {
"name": "Backyard Football Club",
"positions": [{
"position_id": "1",
"required": "true"
},
{
"position_id": "1",
"required": "false"
}]
}
}
}
那么如何处理这种关联的最佳方法呢?
答案 0 :(得分:0)
此处的最佳方法是为club_position
创建club
会向创建club_positions
返回一个网址,然后您会将club_positions
发布到该网址,其中包含position
和{{1}的关系标识符资源。
为此添加的好处是可以并行化club_positions创建。