Graphql-mutation
GraphQL-突然変異
この章では、GraphQLで突然変異クエリを学習します。
突然変異クエリは、データストア内のデータを変更し、値を返します。 データの挿入、更新、削除に使用できます。 突然変異は、スキーマの一部として定義されます。
変異クエリの構文は以下のとおりです-
図
突然変異クエリを使用して、新しい学生レコードをデータストアに追加する方法を理解しましょう。
ステップ1-プロジェクトに必要な依存関係をダウンロードしてインストールする
名前mutation-appでプロジェクトフォルダを作成します。 ターミナルからディレクトリを「mutation-app」に変更します。 環境設定の章で説明されている手順3〜5に従います。
ステップ2-schema.graphql Fileの作成
プロジェクトフォルダmutation-appに schema.graphql ファイルを追加し、次のコードを追加します-
関数createStudentはString型を返すことに注意してください。 これは、学生の作成後に生成される一意の識別子(ID)です。
ステップ3-resolver.jsファイルを作成する
プロジェクトフォルダにファイルresolvers.jsを作成し、次のコードを追加します-
突然変異関数は、データストア内の学生コレクションを指します。 新しい_student_を追加するには、studentsコレクションでcreateメソッドを呼び出します。 _args_オブジェクトには、クエリで渡されるパラメーターが含まれます。 _students_コレクションのcreateメソッドは、新しく作成された学生オブジェクトのIDを返します。
ステップ4-アプリケーションを実行する
次のステップは、ブラウザーを開いてURL http://localhost:9000/graphiql を入力することです。 エディタで次のクエリを入力します-
上記のクエリは、student.jsonファイルに学生オブジェクトを作成します。 クエリは一意の識別子を返します。 クエリの応答は以下のとおりです-
学生オブジェクトが作成されたかどうかを確認するには、studentByIdクエリを使用できます。 データフォルダから「students.json」ファイルを開いてIDを確認することもできます。
studentById queryを使用するには、以下に示すように schema.graphql を編集します-
以下のように resolver.js ファイルを編集します-
以下に示すのは、突然変異クエリから返された一意のIDで学生を取得するクエリです-
サーバーからの応答は次のとおりです-
ミューテーションでオブジェクトを返す
突然変異したオブジェクトを返すことをお勧めします。 たとえば、クライアントアプリケーションは学生と大学の詳細を取得する必要があります。 この場合、2つの異なるリクエストを作成する代わりに、学生とその大学の詳細を含むオブジェクトを返すクエリを作成できます。
ステップ1-スキーマファイルの編集
学生の詳細から大学の詳細にアクセスする方法を学びましょう。 スキーマファイルにカレッジタイプを追加します。
ステップ2-「resolvers.js」ファイルを更新する
プロジェクトフォルダ内のファイル resolvers.js を更新し、次のコードを追加します-
ステップ3-サーバーを起動し、GraphiQLに要求クエリを入力します
次に、サーバーを起動し、次のコードでGraphiQLのクエリを要求します-
上記のクエリは、新しい学生を追加し、学生オブジェクトと大学オブジェクトを取得します。 これにより、サーバーへの往復が節約されます。
応答は以下のとおりです-