假設我有一個RESTful api與團隊和玩家,多對多的關係。REST:如何管理「不在」查詢
我可以從一個特定的團隊球員:
GET /api/team/{team_id}/players
我想作一些更復雜的querys,但我不知道這是URI設計的最佳實踐。
具體來說,我想:不屬於任何團隊的一部分
- 讓玩家。
- 獲得不屬於特定團隊的球員。
這樣做的最佳方法是什麼?像
/api/team/{team_id}/players
假設我有一個RESTful api與團隊和玩家,多對多的關係。REST:如何管理「不在」查詢
我可以從一個特定的團隊球員:
GET /api/team/{team_id}/players
我想作一些更復雜的querys,但我不知道這是URI設計的最佳實踐。
具體來說,我想:不屬於任何團隊的一部分
這樣做的最佳方法是什麼?像
/api/team/{team_id}/players
如果團隊和球員有多對多的關係,我個人不會使用這個uri設計。如果一名球員可以參加多支球隊比賽,那麼你最終會得到不唯一的球員球員。例如說,一個特定的播放器播放兩個隊5隊6,它們可能是由以下的URI兩者(假設球隊和球員都有數字ID)
/api/team/5/players/4
/api/team/6/players/4
表示相反,我會走動有點事,你可以表示與此URI玩家:
/api/players/4
,每隊有這些URI(使用複數的一致性)
/api/teams/5
/api/teams/6
然後你就可以搜索成員球隊這樣
/api/players?team=5
不能在查詢第解釋是開放的,但你可以如此的相似模型過濾器如何Django的工作的東西,沿着這些線路推出後綴查詢參數:
/api/players?team_ne=5
玩家沒有任何一支球隊,你有幾種選擇
/api/players?team=
/api/players?team=none
也許那些二是更加明確
路由語法要求定義八方TEAM_ID。
使用GET參數過濾此屬性。