【发布时间】:2016-11-24 02:56:30
【问题描述】:
我有AngularJs client。他希望使用 CRUD 架构来使用每个 API。例如:
GET /user
GET /user/:id
POST /user
PUT /user/:id
DEL /user/:id
这是他要用于我的架构的所有端点。(使用 MongoDB 数据库)。
我有 user 架构,例如(简化):
{
id : ObjectId("..."),
name: "Foo fooer",
itemIds : [
ObjectId("..."),
ObjectId("..."),
ObjectId("...")
]
}
和架构项目(不需要显示问题)。
我们需要从user.itemIds 中添加/删除 itemsId。
客户想要创建新架构 userItems:
{
id : ObjectId("..."),
userId : ObjectId("..."),
itemID : ObjectId("...")
}
并且他想从用户架构中删除 user.itemIds 并创建 4 个 CRUD 端点 /userItems。
我认为这种方法是错误的,规范化了 mongo 数据库。
但我不知道双方(客户端和服务器)哪个更好。
1)创建2个端点POST /UserItem,DEL /UserItem来更新user.itemIds中的项目。
2) 使用现有 API PUT /user 更新 user.itemIds,但客户端需要发送整个 itemsIds 数组来更新它(如果有很多,这可能是不好的方法。
客户说这两种方法不好,他只知道他的 SQL REST 架构(一切都标准化)。我如何证明他,他错了?因为他对我说:
Server to adapt to the client and not vice versa.
谢谢。
【问题讨论】:
标签: node.js mongodb rest database-design