你如何建構你的 URL 路由?
是否有開發人員通常遵循的特定模式?我以前在我的 Web 應用程序中從未真正考慮過它,但是 ASP.NET MVC 路由引擎幾乎迫使您至少考慮到它。
到目前為止,我喜歡控制器/動作/索引結構(例如 Products/Edit/1),但我正在努力處理更複雜的 url。
例如,假設您有一個頁面,其中列出了使用者在其帳戶中擁有的所有產品。你會怎麼做?在我的腦海中,我可以想到列表頁面和編輯頁面的以下可能性:
- 使用者/{使用者 ID}/產品/列表,使用者/{使用者 ID}/產品/編輯/{產品 ID}
- 使用者/{使用者 id}/產品,使用者/{使用者 id}/產品/{產品 id}
- Products?UserID={user id}, Products/Edit/{product id}
我敢肯定還有很多其他我想念的。有什麼建議嗎?
我喜歡 RESTful、使用者友好和可破解的 URL。
這是什麼意思?讓我們從使用者友好的 URL開始。對我來說,使用者友好的 URL 是易於鍵入且易於記憶
/Default.aspx?action=show&userID=140的內容,但不滿足任何這些要求。不過,像 `/users/troethom´ 這樣的 URL 似乎是合乎邏輯的。這導致了下一點。可破解 URL是使用者可以修改並仍會顯示結果的 URL。如果 URL 是可破解的並且我的個人資料的 URL
/users/troethom是安全的,則刪除我的使用者名以獲取使用者列表 (/users) 是安全的。使用RESTful URL與我的其他建議背後的想法非常相似。您正在為使用者而不是為機器設計 URL,因此 URL 必須與內容相關,而不是與網站的技術後端相關。’/users’ 的 URL 比 ‘/users/list’ 和 ‘/category/programming/javascript’ 的 URL 更有意義(在 ‘programming’ 類別中表示子類別 ‘javascript’ 比 ‘/category/show 更好/12’。
省略 ID 確實更難,但在我的世界裡,這是值得的。
另請參閱有關 W3C 的常見 HTTP 實現問題的理解 URI 部分。它列出了設計 URI 時的常見陷阱。另一個很好的資源是Resourceful Vs Hackable Search URLs。