我读了很多关于RESTful API Design的内容。 但是当涉及到实施时,它就不那么容易了。 我遇到了以下问题:
假设以下2个终点:
我们都可以看到,朋友是资源用户的集合。 用户可以在他的朋友列表中拥有n个朋友(按照标准,这将是多对多,但是现在,让我们假设这是一对多)。 好的,现在我想通过执行以下HTTP-Request从用户1的好友列表删除用户( id = 3 ):
DELETE api / v1 / users / 1 / friends / 3
这就是我遇到的问题 - 请求删除整个用户资源,其中id = 3或从集合中删除资源。因为我认为两者都是有效的Restful实现。
所以问题是: 如何从集合中删除项目而不删除原始资源
我希望这个问题没有重复 - 但我确实谷歌搜索了很多答案。也许我不知道相关的技术术语,以找到一些令人满意的结果......
先谢谢。
答案 0 :(得分:1)
REST的方法看起来不错,但实际上只涉及路径格式和HTTP动词。问题必须出在您的应用程序代码或应用程序路径中。
答案 1 :(得分:0)
我认为最好使用DELETE api / v1 / users / 1 / friends / 3来删除用户3,就像DELETE api / v1 / users / 1将用于删除用户1一样。
要仅删除用户3的朋友,我会使用DELETE api / v1 / users / 1 / friends并指定过滤器,仅删除ID为3的朋友。
DELETE api / v1 / users / 1 /没有过滤器的朋友会删除用户1的所有朋友。
同样要添加用户1的朋友,我会使用PUT api / v1 / users / 1 / friends并指定要添加的朋友的ID。