假定关系数据库A和B中的两个表以及一个联接表C。在显式添加关系之前,联接表为空。
我正在公开REST端点以添加/删除这些关系(添加/删除表C中的条目)。他们不修改表A或B中的条目,但是从消费者的角度来看,A与B的关联与实体本身一样重要。它会感觉,就像正在修改资源一样。但是实际上发生的是正在从表C中添加/删除一行。
哪个动词最适合添加/删除端点?发布/删除?放放?甚至可以提出PATCH的理由(如果我采用“修改的”路线,那么我就不会替换整个资源,只是其中的一部分)
更新:我看到通过创建新资源(/ api / friendships / create |删除)来处理类似情况。如果这最终是答案,就可以了,但是在我看来,这种关系更像是在库
中添加/删除的播放列表答案 0 :(得分:1)
由于这些关系是一等公民,因此适当的动词应为POST和DELETE(如果无法复制关系,即每个A-B对只能存在一个关系,则为PUT和DELETE)。在RESTful API中,HTTP谓词通常比服务器的实现细节更符合消费者的意图(这不是消费者所关心的)。
答案 1 :(得分:1)