2017-07-08 140 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提供空間,所以用戶名可能在時間上不唯一?