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

それほど時間が経過しないうちに、次の世代は、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を提供する方を選択します。












