2017-07-08 102 views
0

自从很长一段时间以来,我一直怀疑有关资源的URL链接,例如用户和堆栈交换站点上的问题。当我转到我的个人资料页我希望是这样的:资源的REST URL

https://stackoverflow.com/users/codeyogi

但我看到:

https://stackoverflow.com/users/4260745/codeyogi

为什么有一个额外的随机数?因为用户名是唯一的。

+0

如果该号码确实是随机的,则它可以是访问请求号码。如果数字不是随机的,那么它可能是用户数据的唯一键(通常用数字键查找数据比使用字符串快很多)。 – Mikael

+0

1.您似乎暗示Stack Exchange用户配置文件URI是根据REST原则创建的。为什么? 2.很容易检查用户名是否真的在Stack Exchange站点上是唯一的。请参阅[用户](https://stackoverflow.com/users)。甚至还有另一个用户名为:[CodeYogi](https://stackoverflow.com/users/5679597/codeyogi) – unor

回答

2

该数字可能不是随机的。这是您帐户的唯一用户ID。例如,该网站可能希望允许多个人使用相同的名称,例如“John”。然而,约翰“A”与约翰“B”不同,并且通过唯一的用户ID区分它。

+0

我不认为你可以在这里有相同的用户名,我们可以吗? – CodeYogi

+0

当我注册我的帐户时,它只会要求我提供电子邮件和密码。我根本没有提供用户名。它要求提供“显示名称”,电子邮件地址和密码。 – ChMo

+0

如果用户名可以相同,并且每个用户都有唯一的ID,那么为什么用户名在URL中呢? URL中已经有UID。 – CodeYogi

0

为什么会有一个额外的随机数?因为用户名是唯一的。

因为在休息,URL 的拼写不要紧,因此服务器可以将它喜欢它导入的任何信息,它喜欢的编码,并修改方案它喜欢的时候。

我希望是这样的: https://stackoverflow.com/users/codeyogi

这也将是一个有效的拼写。但作为客户,你没有理由关心将要使用什么拼写 - 你只需要遵循链接,而且一切正常。

没有答案,为什么堆栈交换使用这种特殊的拼写; the apidocs暗示所有的uri模板都为ID提供空间,所以用户名可能在时间上不唯一?