2020年02月28日 08時00分 公開
特集/連載

GraphQLなしのAPI呼び出しは絶望的専門家が語る、REST APIオンリーの限界とGraphQLを使うべき理由

『GraphQL for Modern Commerce』の著者による、GraphQLのメリットとデメリット。これを読むと、REST APIだけでの開発がいかに絶望的であるかが分かる。

[Computer Weekly]
iStock.com/Melpomenem

 クエリ言語「GraphQL」はFacebookが考案し、2015年にオープンソース化された。Twitter、Amazon Web Services、GitHubなど、多くのアプリやWebサイトがGraphQLで構築されている。

 GraphQLはREST API、任意のアプリケーション、データストアの上位に位置するレイヤーだ。このレイヤーによって複数のAPIにまたがるデータの取得と抽出のプロセスが容易になる。

 例えばある小売業者の開発者として、製品ページのレンダリングを担当しているとする。300件のREST APIカタログの構築は済んでいる。今必要なのは製品の説明、価格、類似商品などのデータにアクセスするための製品詳細のページだ。

 必要なAPIは10件かもしれないし、200件かもしれない。

 APIを1つずつ個別に呼び出すことも可能だ。だがそれでは時間がかかる。各APIには大小さまざまな違いがあるため、それらを呼び出すのはマイクロサービス環境だと難しくなる恐れがある。どのAPIを呼び出せばよいのか分からない。どのAPIが最新データを提供するのかも分からない。相手が倉庫管理システムなのかERPなのか、それともその他のシステムなのかも分からない。

全てのルールを決める1つのクエリ

 GraphQLでREST APIを利用する場合、必要な情報を記述したクエリを1つ発行するだけだ。そのクエリに伴う面倒な処理はGraphQLレイヤーが行い、その呼び出しを個別のAPIに直接送る。

 その結果、要求したデータを含む1つのJSONオブジェクトが返される。それ以上でもそれ以下でもない。「テーブル1からXを選び、テーブル2にそれを結合する」という要求をデータベースに行うSQLクエリのようなものだと考えればよい。

 GraphQLは開発者が抱える多くの悩みを解消する。Webページ、アプリケーション画面、その他のエクスペリエンスを最初のインスタンスで素早くレンダリングできるだけではない。データを過剰に取り込んだりデータの取り込みが不足したりすることもない。

データ取り込みの過不足

 取り込むデータの不足はREST APIではよく起きる問題だ。




続きを読むには、[続きを読む]ボタンを押して
ください(PDFをダウンロードします)。






ITmedia マーケティング新着記事

news129.jpg

新型コロナウイルス感染拡大で米国のEC取引が急増――Adobe Digital Economy Index
Adobeは、「Adobe Analytics」と、オンラインでの商品およびサービスの売り上げを測定す...

news025.jpg

SNSマーケティングの「中と外」
「ITmedia マーケティング」では、気になるマーケティングトレンドをeBookにして不定期で...

news143.jpg

Google トレンドで探る新型コロナウイルスに関連する検索動向
新型コロナウイルスの脅威が高まる中、国内の関心はどのように移り変わっているのか。「G...