2009-11-20 56 views
2

我對RESTful的URL和所有的理論背後沒有嵌套的URL,但我還不太確定這看起來像一個企業應用程序,就像亞馬遜,StackOverflow的,或谷歌......嵌套的路線和參數的軌道URL(最佳實踐)

谷歌擁有的網址是這樣的:

亞馬遜這樣的:

而且StackOverflow的是這樣的:

所以我的問題是,什麼是像這些系統建立網址方面的最佳實踐?你什麼時候開始在url中存儲參數,你什麼時候不用?這些大公司似乎沒有遵循在ruby社區中激烈爭論的規則(例如,你幾乎不應該嵌套URL),所以我想知道如何在大型項目中實現自己的URL,因爲它看起來像不嵌套的網址在博客以外的任何地方都會崩潰。

任何提示?

回答

6

不要因Ruby社區中的「規則」而陷入困境。這個想法是,你不應該在嵌套URL時過度,但是當它們合適時,它們被內置到Rails框架中是有原因的:使用它們。

如果某個資源始終落入另一個資源中,則將其嵌套。沒有錯。有時候會比較困難,因爲你的路線路線很長,可能會讓你感到困惑。

另外,不要混淆名稱空間的嵌套。僅僅因爲你看到example.com/admin/products/1234/edit並不意味着有嵌套發生。當路由實際上不在代碼級別時,路由可以使事物看起來嵌套。

我個人非常喜歡在我的應用程序中嵌套和使用它(通常只有一個級別 - 偶爾兩個)。此外,添加使用文字而不僅僅是ID的固定鏈接樣式的URL更具視覺吸引力,它們可以幫助搜索引擎優化,無論它們是否嵌套。

-8

那麼首先要認識到的是,如果你看看示例應用程序和示例代碼,Rails僅適用於構建博客和購物車。

接下來你會意識到,倡導REST風格的URL和沒有嵌套的路由的人可能只是建立博客和購物車。

最終會有啓發,你會接受RESTful URL和非嵌套路由是一堆廢話,然後你可以繼續實際構建應用程序並完成工作。

+1

你必須是一個心懷不滿的Java程序員。 – ryeguy 2010-03-15 15:06:23

1

我相信REST和/或嵌套在你的路線中的論點與你想要公開你的API的方式有很大關係。如果你不關心公開暴露你的應用程序的API,那麼有一個觀點認爲嚴格遵守RESTful設計是浪費時間,特別是如果你不同意REST背後的推理。你的選擇。

我發現,考慮客戶端(瀏覽器除外)如何從您的應用程序訪問信息有助於設計過程。從API的角度考慮您的應用設計的最大優點之一是您傾向於消除不必要的複雜性。對我來說,這是你在圍繞嵌套路線的Rails社區中聽到的警告的根源。我會認爲事情變得有點複雜,可能是時候退一步,重新考慮這種方法。比「博客更大」的系統不一定非常複雜。有些部分可能會有,但是當你從不同的角度來看設計時,你也可能會感到驚訝。

簡而言之,請考慮一些您可能會從社區的某些部分聽到的教條,作爲您可能想要更深入地思考您的設計的指南和信號。嚴格的REST只是考慮如何構建應用程序的另一種方式。