Connect with us

ソートリーダー

GraphQL – アプリケーションのコミュニケーション方法を変え、改善する

mm

それほど時間が経過しないうちに、次の世代は、Fortnite ロビーでゲームの間、暗号通貨を購入し、ユニット信託残高を確認するようになるでしょう。これは、多くの技術的進歩によって実現されるでしょう。

今日議論するのは、アプリケーションとそれらを所有する会社の間でデータを転送(読み取り、更新、追加/削除)する方法です。アプリケーション・プログラミング・インターフェイス(API)は、このデータ通信を定義するアーキテクチャであり、これらの標準が発展するにつれて、処理要件とデータ・ストレージ要件はより容易になりました。

軽量リソース使用のリーダーは、GraphQLです。GraphQLは、オープンソースのデータ・クエリおよび操作言語であり、そのエコシステムの基盤は、その仕様と、そこに作成されたツールのコレクションです。

これは新しいものではありません。時間は速いです。Facebookは2012年に開発し、モバイル・アプリケーション開発にのみ内部的に使用しました。2015年にオープンソース化され、現在は、https://graphql.org/foundation/のGraphQL Foundationによって管理されており、そのさらなる開発を監督しています。

なぜ今回について書いているのでしょうか。典型的な技術採用への道筋は、以下のステップに従います。1)趣味家/個人プロジェクト、2)複数の言語への実装、3)スタートアップおよび中小企業への実装、4)中規模企業および製品開発への実装、5)大企業およびテクノロジー・ジャイアントへの実装。

GraphQLはレベル5に達しました。現在、GitHub、Pinterest、Shopify、Microsoftなどが使用しており、2022年3月にSalesforceも採用しました。

Salesforceからデータをより効率的に取得する方法を探している途中で、SalesforceのGraphQLドキュメントを見つけ、読み始めました。

GraphQLは従来のREST APIとどう違うのでしょうか。

  • 主な利点の1つは、GraphQLでは、特定のデータのみをクエリし、特定のデータのみが返されることです。特定のクライアント・インシデントに関連する2つのフィールドのみを取得したい場合、それだけが返されます。従来のREST APIでは、インシデントに関連するすべてのフィールド(100以上)が返されます。そこで、最初から不要なデータを処理する必要があります。これは、データの過剰取得(不足取得も問題です)と呼ばれます。
  • 上記により、GraphQLはデータを返す際に他のAPI方法よりも高速です。
  • GraphQLは強い型付け言語であり、その他のことの中でも、コードのエラーはプログラムの実行前に検出され、実行中には検出されません。
  • GraphQLの周辺には優れたツールが構築されており、開発者にとって非常に親切です。
  • GraphQLには単一のエンドポイントがあり、REST APIには複数のエンドポイントがあります。つまり、すべてのデータを1つのリクエストで取得できます。

コインの2つの側面:リクエスター(クライアント)とプロバイダー(GraphQLホスト)

ここまでで、GraphQLをデータ「リクエスト」の観点から見てきました。SalesforceやMicrosoftのような会社が、データをクエリおよび操作するために使用できるGraphQL APIを設定します。

例えば、Salesforceに関連するクライアント・インシデントのデータをクライアント・ポータルに含める場合、最も効率的な方法は、ポータルからSalesforceのGraphQLサーバーに正確なデータをリクエストすることです。必要なデータだけが返され、不足取得や過剰取得は発生せず、追加の処理やデータ・ストレージは必要ありません。

コインのもう一方の側面は、クライアントが効率的な方法でデータにアクセスできるように、GraphQLアーキテクチャを設定する組織です。

GraphQL APIを構築することで、組織はすべてのシステムを1つのモデルに統合するモデルを作成します。これにより、システムの複雑さが除去され、データのクエリがAPIを介してシームレスに行えるようになります。

アプリケーションまたはプロバイダーを比較する際には、データを取得するために提供される機能を確認します。メールで問い合わせる必要がないこと、または厳格な事前に定義されたレポートに頼る必要がないことを望みます。データを柔軟かつ迅速にクエリできる「プラグイン」方式でデータにアクセスしたいと思います。2つのアプリケーションまたはプロバイダーが他の比較点で同等である場合、REST APIまたはGraphQL APIのいずれかを提供する場合、必ずAPIを提供する方を選択します。

Marcus Loveland, RP PA Analyst Developer at Maitland Fund Services, writes for the ‘IT crowd’, looking ahead on application programming interfaces (API) and honing in on the GraphQL API architecture.