2016-09-13 15 views
5

突然変異内の別のgraphqlTypeで突然変異を実行することは可能ですか?これがいいアイデアかどうかは分かりません。理想的には、graphqlデータ型のそれぞれに対してmutationを作成し、必要に応じてそれらの関数を呼び出すのが良いでしょう。うまくいけば、これは物事をもっとドライに保ちます。別の突然変異からGraphQL突然変異を呼び出す?

たとえば、2つのgraphqlタイプ "projects"と "rooms"があります。すべてのプロジェクトについて、後で参照するために部屋を作成し、IDをプロジェクトに配置する必要があります。フロントエンドから

  • 、(新しいプロジェクトと新しい部屋のために)2つの異なるgraphqlクエリを実行し、新しい部屋でプロジェクトを更新し、最終的な1:

    は私が3つのこれを行うための方法を参照してくださいid。

  • バックエンド/グラフサーバ。簡単にするために、一つの解決関数内のすべてのdb呼び出しを処理して、作成されたプロジェクトと部屋を返します。
  • 突然変異の内部で突然変異を実行する。 project create関数から関数createを呼び出し、両方のデータセットを返します。

まだグラフパスでロープを覚えているので、何が良いことかについての洞察は素晴らしいと思います。

答えて

0

これを行う最も一般的な方法は、afterInsert(または同様の名前の)フックです。したがって、この場合、「部屋」が作成された後、挿入後フックの間に「プロジェクト」を作成します。

+0

これは基本的に私がすでにやっていることです。最初の関数が成功したら次の関数を呼び出します。私の場合、私はgraphqlのクエリ言語を通してそれをやりたいと思います。 – Justin

0

私はずっと前に問題の解決策を考え出しましたが、createProjectAndRoomのようにプロセス全体をキャプチャする突然変異を作るだけではないのですか?私は、GraphQLリゾルバを単一のモデル上の単一のアクションに非常に厳密にマッピングすると考えるのは間違いだと思います。

関連する問題