Graphql-architecture

提供:Dev Guides
移動先:案内検索

GraphQL-アーキテクチャ

GraphQLは、GraphQLサーバーの動作を記述する仕様です。 これは、サポートされているプロトコル、サーバーが受け入れることができるデータの形式、サーバーから返される応答の形式などのように、要求と応答を処理する方法に関する一連のガイドラインです。 クライアントがGraphQLサーバーに対して行うリクエストは、クエリと呼ばれます。 GraphQLのもう1つの重要な概念は、トランスポート層の診断です。 TCP、websocket、またはその他のトランスポート層プロトコルなど、利用可能なネットワークプロトコルで使用できます。 また、データベースに対して中立なので、リレーショナルデータベースまたはNoSQLデータベースで使用できます。

GraphQL Serverは、以下にリストされている3つの方法のいずれかを使用して展開できます-

  • データベースが接続されたGraphQLサーバー
  • 既存のシステムを統合するGraphQLサーバー
  • ハイブリッドアプローチ

データベースが接続されたGraphQLサーバー

このアーキテクチャには、統合データベースを備えたGraphQLサーバーがあり、多くの場合、新しいプロジェクトで使用できます。 クエリを受信すると、サーバーは要求ペイロードを読み取り、データベースからデータを取得します。 これは、クエリの解決と呼ばれます。 クライアントに返される応答は、公式のGraphQL仕様で指定されている形式に従っています。

GraphQLサーバー接続データベース

上の図では、GraphQLサーバーとデータベースが単一のノードに統合されています。 クライアント(デスクトップ/モバイル)は、GraphQLサーバーとHTTPで通信します。 サーバーはリクエストを処理し、データベースからデータを取得してクライアントに返します。

既存のシステムを統合するGraphQLサーバー

このアプローチは、レガシーインフラストラクチャとさまざまなAPIを持つ企業に役立ちます。 GraphQLを使用すると、既存のシステムでマイクロサービス、レガシーインフラストラクチャ、サードパーティAPIを統合できます。

既存のシステムを統合するGraphQLサーバー

上の図では、GraphQL APIはクライアントと既存のシステム間のインターフェイスとして機能します。 クライアントアプリケーションはGraphQLサーバーと通信し、サーバーはクエリを解決します。

ハイブリッドアプローチ

最後に、上記の2つのアプローチを組み合わせて、GraphQLサーバーを構築できます。 このアーキテクチャでは、GraphQLサーバーは受信したリクエストを解決します。 接続されたデータベースまたは統合されたAPIからデータを取得します。 これは下図に表されています-

GraphQLハイブリッドアプローチ