在支持多个帐户的理想RESTful API中,每个资源是否应该在整个系统中具有唯一标识符,或者如果该标识符对于其所属的特定帐户是唯一的,则可以。
每个方案都有专业和缺点吗?
举个例子。
这可以从REST原则中解决这个问题吗?
http://api.example.com/account/1/users/1
...
http://api.example.com/account/50/users/1
或推荐这种方法?
http://api.example.com/account/1/users/{UNIQUE_IDENTIFIER}
...
http://api.example.com/account/50/users/{ANOTHER_UNIQUE_IDENTIFIER}
答案 0 :(得分:2)
真正重要的是每个资源都有唯一的标识符。你的两个例子都实现了这一点,所以你似乎没问题(RESTful)
我认为没有任何令人信服的理由使用其中一个。我会选择对你的实现更有意义的东西。
答案 1 :(得分:2)
您通过始终将第一个用户设置为1来显示有效的用户号码。然后有人知道任何帐户也将拥有用户1.我不是说您应该隐藏用户ID,但为什么要让它变得容易有人在另一个帐户中找到用户ID?
答案 2 :(得分:2)
因为从使用REST API的外部系统的角度来看,整个地址应该被认为是该资源对象的“标识符”,所以你的第一个例子很好。