

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 GraphQL 查詢從 AWS AppSync 主控台中的 DynamoDB 資料表擷取資料
<a name="retrieve-data-with-graphql-query"></a>

現在您的資料庫中存在記錄，您會在執行查詢時取得結果。查詢是 GraphQL 的其他基本操作之一。它用於從資料來源剖析和擷取資訊。在 REST APIs方面，這類似於 `GET`操作。GraphQL 查詢的主要優點是能夠指定應用程式的確切資料需求，以便您適時擷取相關資料。

**查詢資料來源**

1. 如果您尚未這麼做，請登入 AWS 管理主控台 並開啟 [AppSync 主控台](https://console.aws.amazon.com/appsync/)。

1. 從資料表中選擇您的 API。

1. 在左側的索引標籤中，選擇**查詢**。

1. 在資料表左側的 **Explorer** 索引標籤中，於 `query` 下方`listTodos`展開`getTodo`操作：  
![\[Expanded getTodo operation showing fields id, description, name, when, and where.\]](http://docs.aws.amazon.com/zh_tw/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**。結果會顯示在編輯器的右側。我們的範例如下所示：

   ```
   {
     "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
     }
   ```
您也可以取消勾選您要刪除之欄位旁的 **Explorer** 索引標籤中的方塊。

1. 您也可以重複在資料來源中建立項目的步驟，然後使用 `listTodos`操作重複查詢步驟，以嘗試`listTodos`操作。以下是我們新增第二個任務的範例：

   ```
   {
     "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"
           }
         ]
       }
     }
   }
   ```