AngularJs client
があります。彼はCRUDアーキテクチャを使用してすべてのAPIを使用したいと考えています。例:RESTからmongodbドキュメントを適切に更新する方法
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を作成したいです。
私はこの誤ったアプローチで、mongoデータベースを正規化していると思います。
しかし、どちらがどちらの方が良いかわかりません(クライアントとサーバー)。
1)user.itemIds
の項目を更新する2つのエンドポイントPOST /UserItem
,DEL /UserItem
を作成します。多くが存在する場合、これはおそらく悪いアプローチである(
2)は、既存のAPI PUT /user
を使用してuser.itemIds
を更新しますが、クライアントはそれを更新するためにitemsIdsの配列全体を送信する必要がある。
クライアントは、これらの2つのアプローチが悪いと言います、 。?彼が間違っていることを、彼はこの私に言ったので、彼が唯一の(すべてが規格化されている)彼のSQL REST archictereを知ってどのように私は、彼を証明することができます。 Server to adapt to the client and not vice versa.
ありがとう