0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【図解】AppSyncのGraphQL APIが動くまでの仕組みを理解する

Last updated at Posted at 2025-10-12

AppSyncでは、GraphQL APIとEvent APIの2種類のAPIを作成・実行することができます。
今回は、AppSyncのGraphQL APIの方について、大まかな仕組みを説明します。

この記事で書くことと書かないこと

この記事で書くこと

・GraphQL APIでデータを読み込むときの、ざっくりした仕組み

この記事で書かないこと

・詳細なサービス設定や使用言語の書き方
・GraphQL APIでデータを読み込むとき以外の仕組みについて

GraphQL APIが実行されるまでの仕組み

たとえば、お料理のレシピを検索したり、データベース(以下、DB)に登録できるアプリケーションがあるとします。
まずは、データのIDを指定して特定のデータを検索する getRecipe 処理を例にとって仕組みを説明します。

全体の構造

image.png

要素の説明

Schema(スキーマ)
  ・APIの処理で使うデータ構造の倉庫。
  ・リゾルバは、このスキーマ内で定義された項目名と一致する項目名をDBから探してデータを取得する。
  ・AWSマネージメントコンソール > AWS AppSync > 作成したAPI > Schema から設定できるリソースのこと。
image.png

type Query
  ・スキーマ内の要素の1つで、読み取り処理(のデータ構造)を宣言する場所。
貼り付けた画像_2025_10_12_16_36.jpg
※ちなみに、GraphQL の type は複数種類あり、
・Query:データの読み取り
・Mutation:データの作成・更新・削除
・Subscription:リアルタイム購読
を意味します。
今回の例は「Query(読み取り)」に該当します。

API(GraphQL API)
  ・AppSyncが提供するAPIリソースのこと。
  ・Create API から作成できる。
image.png

Resolver(リゾルバ)
  ・API内で特定の処理を実行するためのリソース。
  ・どのAPI(の処理)を、どのデータソース(DBとか)からデータを引っ張ってくるかを設定する。
  ・作成したAPI > Schema > Resolvers から作成できる。
image.png

DB
データを取得するデータベース

仕組み

GraphQLでは、スキーマがAPIの設計図、リゾルバが実際の処理ロジック、データソースが実データの置き場所を担っています。
つまり、AppSyncはこの3つを紐づけることで「GraphQLクエリ → 実データ取得」までの流れを構築しています。

まず、重要な登場人物がリゾルバです。
スキーマで定義したとおりに、データソースからデータを取得する処理を実際に行うのがリゾルバ。というイメージです。
なので、実装時にはリゾルバとスキーマ、データソースをそれぞれ紐づけてあげる必要があります。
image.png

1. スキーマとリゾルバを紐づける

スキーマ内のどのデータ構造を使ってデータソースにアクセスするかを、リゾルバのフィールドに指定します。
以下の図のように、Shcema > type Query 内に記載のフィールド名と一致する必要があります。
以下の図の例では、getRecipe (IDを指定して該当のデータを取得する)を実行して、DBからデータをとってくる設定をしています。
image.png

実際に画面上から設定するときは、Schema > Resolvers 内のフィールド横の「Attach」ボタンを押下する操作になります。
貼り付けた画像_2025_10_12_17_23.jpg

2. リゾルバとデータソースを紐づける

同時に、どのデータソース(今回の場合はDB)へアクセスするかを、リゾルバのデータソースに指定します。
以下の図のように、データソース名がと一致する必要があります。
image.png

実際に画面上から設定するときは、Schema > Resolvers 内のフィールド横の「Attach」ボタン > Attach resolver からデータソースを設定します。
貼り付けた画像_2025_10_12_17_28.jpg

3. 実行結果

作成したAPI > Queries から、IDを指定して getRecipe を実行します。
すると、指定したDBからデータを取得できます。
image.png

おわりに

今回はDBからデータを検索する例で仕組みを説明しましたが、
・DB以外にも、AWS LambdaやAmazon EventBridgeとも連携して別の処理を呼び出すこともできます
・スキーマ内の type Query ではなく type Mutation をリゾルバのフィールドに指定することで、書き込み処理もできます

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?