GraphQL API の設計 - AWS AppSync

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

GraphQL API の設計

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

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

GraphQL スキーマ

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

データソース

データソースは、GraphQL API がやり取りできる AWS アカウントのリソースです。AWSAppSync のサポートAWS Lambdaデータソースとして、Amazon DynamoDB、リレーショナルデータベース(Amazon Aurora Serverless)、Amazon OpenSearch Service、、および HTTP エンドポイントを指定します。

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

リゾルバー

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

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

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