2012-12-01 40 views
3

我明白(我認爲...)REST的基礎知識,但在試圖設計我的API時,我對子資源有些困惑,我會試着用一個例子來解釋一下:我應該如何處理REST中的子資源?

讓我說我有具有兩個資源(用戶和房間)的應用程序,用戶可以創建房間並加入房間,以下REST URI是否正確?

  1. GET /用戶/ <用戶id>/joinedRooms
  2. GET /用戶/ <用戶id>/createdRooms

還是應像/用戶/ <用戶id> /間/加入或/ users/< userId>/rooms?query = joined?

也會如何「得到類似的房間」的URI看起來像?/rooms/< roomId>/similar或/ rooms /?query = similar?

回答

3

URL設計是藝術形式,不是REST約束。 REST沒有提到你的網址應該是什麼樣的。 URL是不透明的字符串,它們的內容是不相關的。

  • /users/<userID>/joinedRooms
  • /users/<userID>/rooms/joined
  • /users/<userID>/rooms?query=joined

您有任何的建議,這些選項同樣有效。只要它代表一種資源,挑選最適合你的一種。

還怎麼會「得到相似的房間」 URI看起來像

同樣,任何你想要的。 /yaz1-oPhce6~X_怎麼樣? :-)

當你作出決定時,我建議你試着考慮一下,比如易用性,美學性等等。