REST Web API - 多对多关系

时间:2015-07-31 08:52:30

标签: api rest

好的,我的last question没有答案,所以我怀疑自己是走错路。

我正在为移动应用程序开发一些Web REST Api,关于 REST最佳实践我不知道如何面对多对多关系。

我有两个表,钱包和Cateories,这些表之间存在多对多关系,因为类别可能与不同的钱包相关联,而钱包可能拥有不同的类别。

实际上这个数据库由非休息网站使用:
当用户创建新类别时,他从自己的钱包列表中选择要连接它的钱包,并通过此单个POST调用创建类别并连接到钱包。

我认为复制此行为并不符合REST最佳实践。

我的第一个想法是用这种形式“揭露”类别和钱包之间的联系:

http://localhost:8000/categories/77/wallets/4

但我遇到了我在previous question上写的问题,我不认为这是正确的方法。

根据 REST最佳实践,任何人都有一个有效的方法来管理多对多关系?

提前致谢。

1 个答案:

答案 0 :(得分:0)

一个类别的命名空间钱包很好,如/ categories / 77 / wallets / 4。如果只有类别中的钱包,您还可以考虑更简洁的方案,如/ categories / 77/4或/ wallets / 77/4。

但是,您没有名称空间。您的钱包可能有自己的ID,因此您也可以将它们公开为/ wallets / 4.

值得努力吗?如果您的网址也在公共网站上,我认为这是一个很好的做法(在这种情况下,您可能也希望支持slug ID,例如/ categories / luxury / wallets / acme)。如果没有,你应该知道它将在服务器端进行更多的配置工作,为客户端做更多的工作(客户端必须知道2个ID而不是1个)。