4
我正在爲我的web項目(PHP)設計一個API,但在建模資源與屬性之間的關係時遇到麻煩。我想就如何繼續進行一些輸入。REST風格的API設計(資源連接)
資源:
- 用戶。
- Id。
- 名稱。
- 狗(關係)。
- Id。
- 私人(是或否)。
- 狗。
- Id。
- 名稱。
關係:
- 多對多。
- 一個用戶可以有很多狗。
- 一隻狗可以屬於許多用戶。
- 這種關係可以是私人的或公共的。
您想如何更新關係的「私人」屬性?
現在你必須發送一個PUT請求.../API /用戶/ {} userId的包括用戶的所有關係,包括更新的屬性:
(名稱可以爲空 - >不更新)
- 狗:
- 狗。
- ID:DogA。
- 私人:是的。
- 狗。
- ID:DogB。
- 私人:第(更新)
- 狗。
,因爲我相信,只有已更改的信息應該需要發送更新我感覺不舒服這種方法。因此我現在的想法是增加對只發送更新的關係的支持....../ api/users/{userId}:
- 狗。
- 狗。
- ID:DogB。
- 私人:第(更新)
- 狗。
在我進入工作,我將不勝感激一些反饋。也許還有其他更好的方法來處理資源之間的關係?
好的,我一直在想單獨的資源。但是,你如何要求一個用戶的所有關係? –
@Mattias:'GET/api/users/{userId}/dogs/[dogId /]'?如果未指定'dogId',則將所有關係都設置爲'userId'。 –
對我來說,「GET/api/users/{userId}/dogs」實際上會給我所有與{userId}有關係的狗對象(不是關係)。否則,如果我想查看用戶的所有狗對象,我將不得不先查詢關係,然後單獨查詢每個狗對象(.../api/dogs/{dogId})。這對我來說似乎很複雜...... –