在restful URI中包含电子邮件

时间:2013-01-10 08:40:52

标签: rest restful-url

在我的应用程序中,我有URI,其中包含用于标识用户私有资源的用户标识。用户标识是电子邮件,例如:

/users/user2@example.com/private-resource

将电子邮件放入URI中是一种很好的做法,包括.@等字符? 或者我应该使用其他类型的用户ID?就像哈希一样?

3 个答案:

答案 0 :(得分:4)

如果电子邮件可以作为fixed identifier运行,那就没问题了。

事情是,大多数时候应用程序将允许用户更改电子邮件;在这种情况下,自己控制ID空间将更具防弹性,例如使用surrogate key。 (因为电子邮件(如果用户可以更改它们)不是身份,而只是资源的属性。)

反对电子邮件的另一个论点是 - 正如@Rob所指出的 - 一个潜在的安全问题。

答案 1 :(得分:1)

没有问题......只需确保对相应的字符进行URL编码。

(电子邮件的敏感信息,但是,您可能希望传递哈希或代理密钥,而不是仅仅为了保护用户的电子邮件地址,如果网址传播的话。)

答案 2 :(得分:0)

虽然有' - '在uri绝对没问题。 使用' @' ,'#'不鼓励

但是,只要电子邮件ID是id,例如http://example.org/user/mail/ {电子邮件} / 1234 猜猜那好。