关于让所有A与B相关联的RESTful API设计建议

时间:2017-04-18 06:53:13

标签: mongodb rest api api-design

我正在尝试将RESTful API设计为辅助项目。

我也使用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
}

对于上面的例子,

我是否应该指定一个让所有群组与该用户相关联的来电?

或者我应该获取用户并从检索到的用户那里获取关联的组?

1 个答案:

答案 0 :(得分:0)

取决于你如何设计它。您可以将资源嵌入到其他资源中,以免您从N + 1选择问题中解脱出来,没有任何反对意见。

Hal + json格式是您应该嵌入资源的格式。

在REST中,您甚至可以使用?_embed = groups参数进行嵌入。

嵌入或不嵌入取决于您的应用程序需求,而不是嵌入方式=您应该设计一个像/ groups?user = eralpb这样的过滤器来获取组。或者子资源也可以像/ users / eralpb / groups那样返回我的组。

相关问题