Node.js REST接口主干集合
我有以下问题: 我在服务器端(mongoose)有一个Node.js REST接口主干集合,rest,backbone.js,marionette,Rest,Backbone.js,Marionette,我有以下问题: 我在服务器端(mongoose)有一个帐户集合,我使用express资源作为RESTAPI 现在我有了几个其他对象(项目、组织、任务),其中包含一个成员列表(objectid数组),它们都是account集合的子集 一个木偶应用程序正在处理我的客户端集合 我正在寻找一种避免调用API的方法。目标是通过调用api来获取集合 我有一些想法: 向每个对象添加资源,如 /api/organization/:organizationId/members/ /api/organizatio
帐户
集合,我使用express资源作为RESTAPI
现在我有了几个其他对象(项目、组织、任务),其中包含一个成员列表(objectid数组),它们都是account
集合的子集
一个木偶应用程序正在处理我的客户端集合
我正在寻找一种避免调用API的方法。目标是通过调用api来获取集合
我有一些想法:
- 向每个对象添加资源,如
/api/organization/:organizationId/members/ /api/organization/:organizationId/project/:projectId/members/
- 向基本资源添加参数,如
/api/accounts/?ids=id
- 获取尽可能大的帐户集(从组织中)并从该集合获取其他子集(客户端)
- 在服务器端的成员列表中填充成员
- 单帐户加载。遍历成员列表并获取每个成员
是否有一种最佳实践?我知道第一个选项可能是最好的,但可能有一个选项我错过了。这取决于您如何构建Mongoose数据库。如果组织、项目或任务文档中包含成员列表,则对文档的查询将为您提供所需的列表,而无需查找您感兴趣的特定字段 如果将列表编码为不同的文档(听起来像SQL实践),则需要在节点上设置一个新资源以获取成员列表。在这种情况下,就URL结构而言,您的第一个选项听起来不错,但是实现(在服务器端或客户端加载)取决于项目的特征。通过使用Node,我想您需要一个小型服务器和一个大型客户机(通常情况下),因此最终将在客户机上完成这项工作 至于良好实践,MongoDB是一个面向文档的数据库。为了更好地利用它,停止思考实体和关系,思考他们将提供的文档。在许多部分重复数据是很常见的。每个集合都是一种文档类型,因此每当客户机需要显示某些数据时,它都会获取一个包含它所需的所有信息的文档 在线寻找MongoDB模式,有很多好的来源。如果你喜欢一本书,可以看看乔多罗的权威指南或科普兰的应用设计模式