GraphQL API の設計 - AWS AppSync

GraphQL API の設計

GraphQL API を構築している場合は、スキーマ設計やデータソースに接続する方法など、知っておく必要がある概念があります。

このセクションでは、スキーマをゼロから構築してリソースを自動的にプロビジョニングし、データソースを手動で定義して GraphQL リゾルバーを使用してデータソースに接続する方法について説明します。AWS AppSync では、既存の Amazon DynamoDB テーブルが存在する場合、スキーマとリゾルバーをゼロから構築したり、既存のスキーマがあるかどうかに関係なくバックエンド全体を構築したりすることもできます。さらに、AWS AppSync には ガイド付きスキーマ作成ウィザードが用意されています。このウィザードは、GraphQL または AWS AppSync を初めて使用する場合にお勧めします。

GraphQL スキーマ

各 GraphQL API は単一の GraphQL スキーマで定義されます。GraphQL タイプシステムは、GraphQL サーバーの機能を記述し、クエリが有効であることを判別するために使用されます。サーバーのタイプシステムは、そのサーバーのスキーマと呼ばれます。これは、オブジェクトタイプ、スカラー、入力タイプ、インターフェイス、列挙、ユニオンのセットで構成されます。API および実行可能なオペレーションも通過するデータの形状を定義します。GraphQL は厳密に型指定されたプロトコルで、すべてのデータオペレーションはこのスキーマに対して検証されます。

データソース

データソースは、GraphQL API で操作できる AWS アカウント内のリソースです。AWS AppSync は、AWS Lambda、Amazon DynamoDB、リレーショナルデータベース (Amazon Aurora Serverless)、Amazon Elasticsearch Service、および HTTP エンドポイントをデータソースとしてサポートしています。

AWS AppSync API は、複数のデータソースを操作するよう設定できます。これにより、単一の場所にデータを集約できます。AWS AppSync は、すでに存在するアカウントから AWS リソースを使用したり、スキーマ定義から、ユーザーに代わって DynamoDB テーブルをプロビジョニングできます。

リゾルバー

GraphQL リゾルバーは、タイプのスキーマのフィールドをデータソースに接続します。リゾルバーはリクエストを実行するメカニズムです。AWS AppSync は、スキーマからリゾルバーを自動的に作成して接続でき、またはスキーマを作成し、既存のテーブルからリゾルバーと接続できます。このときコードを記述する必要はありません。

AWS AppSync のリゾルバーは、Apache Velocity Template Language (VTL) で記述されたマッピングテンプレートを使用して、GraphQL 表現をデータソースで使用できる形式に変換します。

リゾルバーの記述に関する導入チュートリアルスタイルのプログラミングガイドは、リゾルバーのマッピングテンプレートプログラミングガイドにあり、プログラミング時に使用できるヘルパーユーティリティは リゾルバーのマッピングテンプレートコンテキストリファレンスにあります。AWS AppSync には、最初から作成または編集するときに使用できるテストとデバッグフローも組み込まれています。詳細については、「リゾルバーのテストとデバッグ」を参照してください。