我的數據模式看起來像什麼是訪問連接的資源不同的資源RESTful方式
User
有許多Transaction
。無論User
和Transaction
在數據庫中不同的表
我REST
終點爲
使用者端點
GET /users/uuid # to get information about specific user
PUT /users/uuid # update information of a specific user
交易端點
GET /transactions/uuid # get a specific transaction
GET /transactions/user_uuid # get all transactions of a specific user
GET /transactions/user_uuid/yyyy # get all transactions of a specific user in year yyyy
GET /transactions/user_uuid/yyyy/mm # get all transactions of a specific user in year yyyy, month mm
GET /transactions/user_uuid/yyyy/mm/dd # get all transactions of a specific user in year yyyy, month mm and day dd
- 我的問題是由於
transactions
將始終附加User
資源,對於它們有不同的端點是否有意義? - 建議用戶訪問交易的建議是什麼?上面貼的那個?或像
GET /users/uuid/transactions # all transactions for a user GET /users/uuid/transactions/yyyy # all transactions for a user for year yyyy GET /users/uuid/transactions/yyyy/mm # all transactions for a user for year yyyy, month mm GET /users/uuid/transactions/yyyy/mm/dd # all transactions for a user for year yyyy, month mm and day dd
我很困惑在這一刻爲哪一個更好。
謝謝
這真的取決於你的需求 – lucemia 2013-04-07 15:22:12
沒有對什麼東西是「REST風格的」沒有真正的定義意義。因此,我們不能說這些選項中的哪一個是「更好」的。當你試圖客觀地進入這樣的討論時,它最終會降臨到你的API最終將如何被使用。有時候,這並不重要。你甚至可能會同時使用這兩種方式。您擔心您錯過了可能會對您的產品造成負面影響的事情。然而,你的主要敵人,國際海事組織,是過度分析。 – 2013-04-07 20:22:36
謝謝@MarkHildreth,我相信我會聽到你,我會盡力根據最佳用例公開API,並在稍後重構 – daydreamer 2013-04-07 20:48:37