翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
GraphQL ミューテーションを使用して AWS AppSync コンソールの DynamoDB テーブルにデータを追加する
次のステップは、GraphQL ミューテーションを使用して空の DynamoDB テーブルにデータを追加することです。ミューテーションは GraphQL の基本的な操作タイプの 1 つです。これらはスキーマで定義され、データソース内のデータを操作できます。に関してRESTAPIs、これらは PUT
や のようなオペレーションと非常に似ていますPOST
。
データソースにデータを追加するには
-
まだサインインしていない場合は、 にサインイン AWS Management Console してAppSync コンソール
を開きます。 -
テーブルAPIから を選択します。
-
左側のタブで [クエリ] を選択します。
-
表の左側にある [エクスプローラー] タブには、クエリエディターですでに定義されているミューテーションやクエリがいくつか表示されている場合があります。
注記
このミューテーションは、実際には
Mutation
タイプとしてスキーマに存在しています。これには次のようなコードがあります。type Mutation { createTodo(input: CreateTodoInput!): Todo updateTodo(input: UpdateTodoInput!): Todo deleteTodo(input: DeleteTodoInput!): Todo }
ご覧のとおり、ここでの操作はクエリエディター内の操作と似ています。
AWS AppSync は、前に定義したモデルからこれらを自動的に生成します。この例では、ミュー
createTodo
テーションを使用して にエントリを追加します。TodoAPITable
テーブル。 -
createTodo
ミューテーションの下でcreateTodo
操作を展開して選択します。上の図のように、すべてのフィールドのチェックボックスを有効にします。
注記
ここに表示される属性は、ミューテーションのさまざまな変更可能な要素です。
input
は、createTodo
のパラメータと考えることができます。チェックボックス付きのさまざまなオプションは、操作が実行されるとレスポンスで返されるフィールドです。 -
画面中央のコードエディターで、操作が
createTodo
ミューテーションの下に表示されているのがわかります。mutation createTodo($createtodoinput: CreateTodoInput!) { createTodo(input: $createtodoinput) { where when name id description } }
注記
このスニペットを正しく説明するには、スキーマコードも確認する必要があります。宣言
mutation createTodo($createtodoinput: CreateTodoInput!){}
は、その操作の 1 つによるミューテーションです。createTodo
すべてのミューテーションはスキーマにあります。type Mutation { createTodo(input: CreateTodoInput!): Todo updateTodo(input: UpdateTodoInput!): Todo deleteTodo(input: DeleteTodoInput!): Todo }
エディターからのミューテーション宣言に戻ると、パラメータは
CreateTodoInput
の必須の入力タイプで$createtodoinput
というオブジェクトです。CreateTodoInput
(およびミューテーション内のすべての入力) もスキーマで定義されていることに注意してください。例えば、CreateTodoInput
のボイラープレートコードは以下のとおりです。input CreateTodoInput { name: String when: String where: String description: String }
これには、モデルで定義したフィールド、
name
、when
、where
およびdescription
が含まれています。エディタのコードに戻ると,
createTodo(input: $createtodoinput) {}
では入力を$createtodoinput
として宣言します。これはミューテーション宣言でも使用されていました。これは、GraphQL が入力を指定された型と照合して検証し、正しい入力で使用されていることを確認できるためです。エディターコードの最後の部分には、操作の実行後にレスポンスで返されるフィールドが表示されます。
{ where when name id description }
このエディターの下の [クエリ変数] タブには、以下のデータを含む汎用
createtodoinput
オブジェクトが表示されます。{ "createtodoinput": { "name": "Hello, world!", "when": "Hello, world!", "where": "Hello, world!", "description": "Hello, world!" } }
注記
ここで、前述の入力の値を割り当てます。
input CreateTodoInput { name: String when: String where: String description: String }
DynamoDB テーブルに入れたい情報を追加して
createtodoinput
を変更します。今回は、リマインダーとしていくつかのTodo
項目を作成したいと考えました。{ "createtodoinput": { "name": "Shopping List", "when": "Friday", "where": "Home", "description": "I need to buy eggs" } }
-
エディター上部の [実行] を選択します。ドロップダウンリストから createTodoを選択します。エディタの右側に、レスポンスが表示されます。次のように表示されます。
{ "data": { "createTodo": { "where": "Home", "when": "Friday", "name": "Shopping List", "id": "abcdefgh-1234-1234-1234-abcdefghijkl", "description": "I need to buy eggs" } } }
DynamoDB サービスに移動すると、データソースに次の情報を含むエントリが表示されます。
操作を要約すると、GraphQL エンジンがレコードを解析し、リゾルバーがそのレコードを Amazon DynamoDB テーブルに挿入しました。これも DynamoDB コンソールで確認できます。id
値を渡す必要がないことに注意してください。id
が生成され、結果に返されます。この例では、DynamoDB リソースに設定されているパーティションキーに対して、GraphQL リゾルバーの autoId()
関数を使用しているためです。リゾルバーを構築する方法については、別のセクションで説明します。戻り id
値を書き留めておきます。次のセクションでは、GraphQL クエリでデータを取得するときに使用します。