3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS AppSyncとGraphQLの入門ガイド

Last updated at Posted at 2024-09-13

はじめに

AWS AppSyncは、GraphQLを使用してアプリケーションのバックエンドを構築するためのマネージドサービスです。
この記事では、AppSyncを使用してGraphQL APIを作成し、DynamoDBと連携させる基本的な手順及び簡単なGraphQLの使用例について紹介します。

AppSync、GraphQL API、DynamoDBの作成

下記のドキュメントに従ってAppSyncとDynamoDBを作成します。

まずAppSyncからAPIを作成を選択します。

ステップ1におけるAPIタイプはGraphQL APIs、データソースはDesign from scratchを選択します。

スクリーンショット 2024-09-12 17.04.10.png

ステップ2でAPIに適切な名前を入力した後、GraphQLのタイプでは「DynamoDBテーブルを使用するタイプを今すぐ作成」を選択します。

AWS公式に従ってモデルとフィールドを設定します。

スクリーンショット 2024-09-12 17.06.26.png

最後にTodoAPITableなどのテーブル名を入力し、プライマリキーをidに設定してAPIを作成します。

上記のように作成するとDynamoDBが自動で作成されます。

スクリーンショット 2024-09-12 17.12.28.png

GraphQLクエリの実行

AppSync→クエリからGraphQLクエリの実行ができます。

データの作成(Mutation)

まずTodoAPITableにデータを追加するために、createTodoを実行します。

GraphQLクエリ及び実行結果は以下です。

スクリーンショット 2024-09-12 17.16.40.png

データの取得(Query)

次にデータが追加されているかを確認するためにlistTodosを実行します。

GraphQLクエリ及び実行結果は以下です。

スクリーンショット 2024-09-12 17.18.56.png

実際にDynamoDBのログを見てみると、読み取りと書き込み処理が実行されていることがわかります。

スクリーンショット 2024-09-12 17.19.49.png

GraphQLの柔軟性

GraphQLの特徴を活かし、idnameのみを指定してcreateTodoを実行できます。
この場合、それ以外のフィールドはnull埋めされます。

スクリーンショット 2024-09-12 17.24.39.png

またlistTodoで特定のフィールド(ex.name)の読み込みも可能です。

スクリーンショット 2024-09-12 17.26.18.png

余談ですが、モニタリングからAPIメトリクス(エラー、リクエスト総数、レイテンシー)の確認が可能です。

スクリーンショット 2024-09-12 17.30.10.png

おわりに

AWS AppSyncを使用してGraphQL APIを素早く構築し、DynamoDBと連携させる方法を紹介しました。
主なポイントは以下の通りです.

  • AppSyncを使用したGraphQL APIの簡単な設定
  • DynamoDBとの自動連携
  • GraphQLクエリの基本的な使用方法
  • GraphQLの柔軟性(部分的なデータ作成と取得)

AppSyncとGraphQLを使用することで、柔軟で拡張性の高いAPIを簡単に構築できます。

参考になれば幸いです。

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?