0

「プロジェクト」と「タグ」という2つのリソースがあります。新しいプロジェクトを追加すると、データはPOSTを介して転送され、project.create(req、res)に渡されます。これにより、プロジェクトがmongodbデータベースに保存され、res.send(200);成功したときに戻ります。

プロジェクトとタグに多対多の関係を持たせて、すべてのタグを簡単に一覧表示したり、プロジェクトタグを一覧表示したり、タグプロジェクトを一覧表示したりできるようにしたいと思います。

これらのタグを格納する最も簡単な方法は、project.create関数でこれらのタグを検索してアップサートし、IDの配列を配列に保存することproject.tagsです。ただし、これはDRYに違反しているように感じます... tag.create(req、res)に同じタグfind+upsertコードがあります。

project.createが呼び出されたときに、tag.createを呼び出すようにするにはどうすればよいですか?また、find + upsertを実行するミドルウェアを作成した場合、これはより良いでしょうか?

4

1 に答える 1

1

免責事項: この回答は、REST API (特に MongoDB ではありません) の一般的な推奨事項を扱います。

実際の REST API について理解しておくべき重要な点の 1 つは、一部のリソースが読み取り専用になる可能性があることです (通常は、読み取り/書き込みリソースから MapReduce で生成されます)。

プロジェクトとキーワードの間に概念的に nn の関連付けがあるとします。このようなリンクを変更するより自然な場所はプロジェクトです。たとえば、次のようになります。

  • GETPUTまたはDELETE /project/stackOverflow(実体)、
  • GET /keyword/QnA(仮想オブジェクト別名クエリ)。
于 2013-02-15T07:21:54.063 に答える