1

假设我的应用程序有用户,每个用户都由他们的电子邮件地址唯一标识。在这种情况下,使用电子邮件的自然键而不是使用自动递增的 ID 作为主键是有意义的,这在大多数系统中都很常见。

然后,在我的 REST API 中,可以像这样访问特定用户吗?

https://api.whatever.com/v1/users/john@smith.com

传统上,您会使用用户 ID 代替john@smith.com,但在我的应用程序中,电子邮件地址是用户帐户的唯一标识符。

你会选什么?使用电子邮件作为 REST URL 中的自然键或创建用户 ID 字段来代替使用?

4

2 回答 2

3

我会使用用户 ID。一个人和他们的电子邮件地址没有一对一的关系,并且他们没有相同的生命周期,因此使用一个作为另一个标识符是一个坏主意。

人们可能有不止一封电子邮件。也许他们没有电子邮件帐户(确实如此)。也许他们改变了他们的电子邮件。如果您使用电子邮件地址作为密钥,您以后可能会遇到问题。

于 2014-11-26T17:42:23.283 回答
1

应该是 url 编码的 https://api.whatever.com/v1/users/john%40smith%2Ecom

否则,通过 id 获取可能比通过邮件更快,也许您想将 API 开放给另一个应用程序人员,这应该了解电子邮件地址

于 2014-11-26T17:48:36.050 回答