2017-04-18 81 views
0

我試圖設計一個RESTful API作爲副項目。獲取所有A關聯的RESTful API設計建議B

我也是用的MongoDB數據庫

(我是新來的NoSQL的設計,所以我需要幫助,如果我有多麼的文件應設計誤解)。

我有例如實體如下:

Event { 
    id: string 
    name: string 
    date: date 
    location: location 
    subgroups: group[] 
} 
Group { 
    id: string 
    owners: user[] 
    members: user[] 
    parentEvent: event 
    posts: post[] 
} 
User { 
    id: string 
    Name: string 
    attendingGroups: group[] 
    owningGroups: group[] 
} 
post { 
    id: string 
    parentgroup: Group 
} 
location { 
    id: string 
    city: string 
} 

對於上面的例子中,

我應該有一個指定的get呼籲與用戶具有相關聯的所有組?

或者我應該得到一個用戶,並獲取用戶檢索到的相關組?

回答

0

取決於你如何設計它。您可以將資源嵌入到其他資源中,以便從N + 1選擇問題中解脫出來,沒有什麼與此相反的。

Hal + json格式是您應該嵌入資源的格式。

在REST中,您甚至可以擁有?_embed = groups參數來嵌入或不嵌入。

嵌入或不嵌入取決於您的應用程序需求,而不是嵌入方式=您應該設計一個像/ groups?user = eralpb這樣的過濾器來獲取組。或者子資源也可以像/ users/eralpb/groups一樣只返回我的組。

+0

在做了一些額外的閱讀之後,我決定使用最後一種格式!謝謝你的提示 – user2662520