我目前將通過HTTP REST的API到在線服務,我面對的是一個非常簡單的問題,對此我無法找到滿足我一個答案REST接口用法:多個資源
我主要有2資源:「用戶」和「報告」,因爲你也能猜到報告關聯到用戶(一個且只有一個,在我的DB =外鍵)
無論如何,我有這個URL映射爲GET
:
mywebsite/api/users/{id}
:返回用戶及相關信息離子,或用戶的列表,如果ID不存在mywebsite/api/report/{id}
:返回一個報告及相關信息,或報告的列表,如果ID不存在
現在我想獲得一個報告我現在這樣做的方法是爲GET
方法添加一個可選參數以用於報告:?username={username}
,如果存在,我將篩選結果以僅返回此用戶的報告。
我不禁覺得有什麼是錯的......如果我開始做這樣的事情,我將有我的方法處理GET
充滿的if/else尋找失蹤參數...
其他解決方案II想到的是:
- 納入產生的
GET
報告上mywebsite/api/users/{id}
但我有很多很多的報告,以便最終將成爲真正的壞... - 映射另一個URL只是這個功能,但它只是不覺得正確...
我剛剛掌握了這個REST的東西,我喜歡這個概念,但是關於這個問題的一點解釋能夠幫助我更好地理解它。
感謝
編輯:
看來我已經打了REST世界一個共同的問題,我都綁不住我的資源模型。如果將資源綁定到模型,最終會遇到聚合屬性問題。 有些傢伙在這裏描述了這個錯誤http://jacobian.org/writing/rest-worst-practices/但我還沒有理解如何來管理,他說......
僅供參考我使用Django /活塞,但這個問題應該交代無論任何語言。