

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# GraphQL クエリを使用して AWS AppSync コンソールの DynamoDB テーブルからデータを取得する
<a name="retrieve-data-with-graphql-query"></a>

これで、データベースにレコードがあるので、クエリを実行すると結果が返されます。クエリは、GraphQL の他の基本的な操作の 1 つです。データソースから情報を解析して取得するために使用されます。REST API に関して言えば、これは `GET` 操作と似ています。GraphQL クエリの主な利点は、アプリケーションの正確なデータ要件を指定して、適切なタイミングで関連データを取得できることです。

**データソースにクエリを実行するには**

1. まだサインインしていない場合は、 にサインイン AWS マネジメントコンソール して [AppSync コンソール](https://console.aws.amazon.com/appsync/)を開きます。

1. テーブルから API を選択します。

1. 左側のタブで **[クエリ]** を選択します。

1. 表の左側にある **[エクスプローラー]** タブの `query` `listTodos` の下で `getTodo` 操作を展開します。  
![\[Expanded getTodo operation showing fields id, description, name, when, and where.\]](http://docs.aws.amazon.com/ja_jp/appsync/latest/devguide/images/explorer-example-4.png)

1. コードエディタで、オペレーションコードが表示されます。

   ```
   query listTodos {
     getTodo(id: "") {
       description
       id
       name
       when
       where
     }
   ```

   `(id:"")` にミューテーション操作の結果に保存した値を入力します。この例では、次のようになります。

   ```
   query listTodos {
     getTodo(id: "abcdefgh-1234-1234-1234-abcdefghijkl") {
       description
       id
       name
       when
       where
     }
   ```

1. **[実行]** を選択し、**[ListToDos]** を選択します。結果はエディタの右側に表示されます。この URL を次のように表示します。

   ```
   {
     "data": {
       "getTodo": {
         "description": "I need to buy eggs",
         "id": "abcdefgh-1234-1234-1234-abcdefghijkl",
         "name": "Shopping List",
         "when": "Friday",
         "where": "Home"
       }
     }
   }
   ```
**注記**  
クエリは、指定したフィールドのみを返します。不要なフィールドは、リターンフィールドから削除することで選択解除できます。  

   ```
   {
       description
       id
       name
       when
       where
     }
   ```
**[エクスプローラー]** タブで削除したいフィールドの横にあるチェックボックスをオフにすることもできます。

1. データソースにエントリを作成する手順を繰り返し、`listTodos` 操作でクエリ手順を繰り返すことで、`listTodos` 操作を試すこともできます。2 つ目のタスクを追加した例を次に示します。

   ```
   {
     "createtodoinput": {
       "name": "Second Task",
       "when": "Monday",
       "where": "Home",
       "description": "I need to mow the lawn"
     }
   }
   ```

   `listTodos` 操作を呼び出すと、古いエントリと新しいエントリの両方が返されました。

   ```
   {
     "data": {
       "listTodos": {
         "items": [
           {
             "id": "abcdefgh-1234-1234-1234-abcdefghijkl",
             "name": "Shopping List",
             "when": "Friday",
             "where": "Home",
             "description": "I need to buy eggs"
           },
           {
             "id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
             "name": "Second Task",
             "when": "Monday",
             "where": "Home",
             "description": "I need to mow the lawn"
           }
         ]
       }
     }
   }
   ```