我有两个已存在的对象,
/foo/1 GET
/bar/1 GET
每个foo
都有bar
个,每个bar
都有foo
个。如何将bar
REST重新添加到foo
的{{1}}集合中?
这似乎是一种可能的解释:
bar
但它打破了/foo/1 PATCH { bars: [1] }
附加到bar
的{{1}}应该通过foo
显示的想法。这似乎也是有效的:
/foo/1/bar/
并且最接近wikipedia描述,但由于我们没有创建新的/foo/1/bar/ POST { id: 1, ... }
,这有点令人困惑。这也会产生一种奇怪的歧义,因为也可以通过此方法创建分配给此bar
的新bar
。最后,有:
foo
我只是简单地喜欢,因为它简单,但不同意维基百科的描述,也没有明显的方法从列表中删除/foo/1/bar/1 POST
(因为{{1将删除bar
)。
我意识到REST是一种架构风格而不是一种明确的标准,但必须有一些最不成问题的方法来实现这一点。
答案 0 :(得分:1)
我通常通过使用第三个资源来解决foo和bar之间的映射问题,例如:
POST /foo
<- "id": 22
POST /bar
<- "id": 17
POST /foo-bars
-> { "fooId": 22, "barId": 17 }