Просто у меня есть AngularJs client
. Он хочет использовать каждый API, используя архитектуру CRUD. Например:Правильный способ обновления документа mongodb из REST
GET /user
GET /user/:id
POST /user
PUT /user/:id
DEL /user/:id
Это все оконечные он хочет использовать для моей схемы (с использованием базы данных MongoDB)..
У меня есть пользователь схемы как (упрощенный):
{
id : ObjectId("..."),
name: "Foo fooer",
itemIds : [
ObjectId("..."),
ObjectId("..."),
ObjectId("...")
]
}
и схема Элементы (не нужно, чтобы показать на вопросы).
Нам необходимо добавить/удалитьitemsId
от user.itemIds
.
клиент хочет создать новую схему userItems:
{
id : ObjectId("..."),
userId : ObjectId("..."),
itemID : ObjectId("...")
}
и Он хочет, чтобы удалить user.itemIds
от пользователя схемы и создать 4 CRUD конечных точек/userItems.
Я думаю, что этот неправильный подход, нормализуя базу данных монго.
Но я не знаю, какой из них лучше с обеих сторон (клиент и сервер).
1) Создайте 2 конечных точки POST /UserItem
, DEL /UserItem
для обновления элементов в user.itemIds
.
2) Обновление user.itemIds
с использованием существующего API PUT /user
, но клиент должен послать весь массив itemsIds обновить его (если есть много это, вероятно, плохой подход.
Клиент говорит, что этот 2 подход является плохим, ., и он только знает его SQL REST archictere (где все нормализуется) Как я могу доказать его, что он не прав, потому что он сказал мне:. Server to adapt to the client and not vice versa.
Спасибо