一個人如何決定使用字符串與REST風格的URL整數標識符。例如,我發現Github API在某些情況下使用了字符串,例如使用字符串與整數標識符REST風格的URL
GET https://api.github.com/repos/nareshbhatia/git-explorer
=> get a repository whose id is "git-explorer"
而在其他整數
GET https://api.github.com/repos/octocat/Hello-World/issues/1347
=> get an issue whose id is 1347
我明白,這是更自然,以確定其名稱的信息庫和其編號的問題,但是從實現的角度來看一個字符串標識符帶來的幾個問題。存儲庫表的主鍵是否應該是名稱?但是一個字符串通常是主鍵的不好選擇。好吧,那麼整型代理鍵的名稱是一個唯一的列。但是,這意味着每當我有一個倉庫(整數)的參考,我需要構建一個URL它,我不得不做了一個連接以存儲庫表 - 只是爲了獲得它的名字。
要澄清一下,假設我創建了JSON的一個問題,我需要包括一個鏈接到庫,我需要一個連接到存儲庫表中創建像/repos/nareshbhatia/git-explorer
,而不是一個簡單的鏈接的鏈接只有一個整數像/repos/nareshbhatia/10
我自己傾向於去字符串作爲PK,但在網上的意見似乎是50-50。我還在想,如果這樣的大鍵作爲外鍵出現在關聯表中,那就不對了。這就是爲什麼認爲代理鍵作爲PK的原因。順便說一句,人們真的認爲RESTful API的SEO優勢?我認爲這隻適用於可瀏覽頁面。 (當然,我同意即使在REStful API的情況下也是有意義的/可讀的URI更爲可取。) – Naresh