現狀
我開發的PHP的在線訂單管理系統應用程序,我需要通過URL方案設計REST資源映射。如何組織資源在Web應用程序的URL結構
我有典型的資源:
- 客戶(有訂單)
- 訂單(有票)
- 票務(有消息)
- 消息
我想到的是這樣的:
客戶概況:
example.com/customers/{customer-ID}
訂單爲{客戶ID}:
example.com/customers/{customer-ID}/orders
{或DER-ID}:
example.com/customers/{customer-ID}/orders/{order-ID}/tickets
消息{票ID}
example.com/customers/{customer-ID}/orders/{order-ID}/tickets/{ticket-ID}/messages
發現
谷歌搜索的有一天,我發現這些qutoes:
-
的用戶名後面的命名空間功能,如
example.com/{username}/followers
是公共功能屬於每個用戶單獨偉大的解決方案。
-
私人的東西,比如帳戶設置,不應該的用戶名背後命名空間,並且應該只出現
/account
或/settings
之後。 -
這是最好保持基本資源的URL結構儘量緊湊,。過濾器,分揀要求,先進搜索和分頁可以爲查詢參數得到落實。
-
的查詢字符串應該被視爲一個可選除了頁面;該網址應該能夠生成有效且有用的網頁,即使該網頁已被刪除。
-
在一個良好的,破解的URL,人類可以調整或刪除路徑的部分,並從您的網站預期的結果。它們可以讓您的訪問者更好地定位您的頁面,並使他們輕鬆向上移動。
-
通過在你的路徑早就嵌入一個唯一的ID,你可以在需要時有長,完全採用描述性網址,但仍享受較短的網址的可靠性和ID查找的速度。
-
添加多個關鍵字網址可以與SEO的幫助,但它會混淆用戶。此外,您很快就會冒着被標記爲關鍵字垃圾郵件發送者的風險。
問題
- 我做的事情錯了嗎?
- 我應該避免命名空間客戶,訂單,門票和消息?
- 它是否有任何真正的重大安全問題?
在此先感謝!
在烏爾建議的方案,是什麼'example.com/customers/ {客戶ID}/orders'和'例子之間的差異。 COM/orders'? – Trix
@Trix'/ orders'可能會列出所有訂單,而'/ customers/{customer-ID}/orders'會列出該客戶ID的所有訂單。 –
然後,當客戶訪問'/ orders'他應該看到什麼?一條**訪問被拒絕!**消息? – Trix