更新到多个关联

时间:2015-01-06 06:49:38

标签: spring spring-boot spring-data-rest

在用户和群组之间建立多对多关系。我想知道如何用SDR更新这种关系。这是我在阅读docs之后到目前为止所尝试的内容。

curl -X POST -H 'Content-Type: text/uri-list' -d 'http://localhost:8080/rest/users/5' http://localhost:8080/rest/groups/1/users

预期结果:将用户5添加到组1。

实际结果:405方法不允许。

curl -X PUT -H 'Content-Type: text/uri-list' -d 'http://localhost:8080/rest/users/5' http://localhost:8080/rest/groups/1/users

预期结果:将第1组的所有成员替换为用户5。

实际结果:按预期工作。

curl -X PUT -H 'Content-Type: text/uri-list' -d @members.txt http://localhost:8080/rest/groups/1/users

文件members.txt包含:

http://localhost:8080/rest/users/5
http://localhost:8080/rest/users/6
http://localhost:8080/rest/users/7

预期结果:将第1组的所有成员替换为用户5,6和7。

实际结果:仅添加最后一位用户(在本例中为7)。

有人可以提供一个关于如何将单个URI添加到关联的示例吗?如果可能的话,如何添加或替换多个URI的关联?

2 个答案:

答案 0 :(得分:3)

重新阅读文档后,确实说POST应该添加到集合中。

我的经验是使用PATCH添加到集合中。

要进一步解答:您应该能够使用PUT CONTENT-TYPE:text / uri-list与具有多个URI的内容正文。每个URI由换行符" \ n"

分隔

答案 1 :(得分:0)

试试这个:

curl -v -X POST -H "Content-Type: text/uri-list" -d "http://localhost:8080/rest/users/5" http://localhost:8080/rest/groups/1/users