RESTful API中每个资源的唯一标识符?

时间:2011-10-17 21:01:11

标签: api rest

在支持多个帐户的理想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}

3 个答案:

答案 0 :(得分:2)

真正重要的是每个资源都有唯一的标识符。你的两个例子都实现了这一点,所以你似乎没问题(RESTful)

我认为没有任何令人信服的理由使用其中一个。我会选择对你的实现更有意义的东西。

答案 1 :(得分:2)

您通过始终将第一个用户设置为1来显示有效的用户号码。然后有人知道任何帐户也将拥有用户1.我不是说您应该隐藏用户ID,但为什么要让它变得容易有人在另一个帐户中找到用户ID?

答案 2 :(得分:2)

因为从使用REST API的外部系统的角度来看,整个地址应该被认为是该资源对象的“标识符”,所以你的第一个例子很好。