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

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

『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ではよく起きる問題だ。




続きを読むには、[続きを読む]ボタンを押して
会員登録あるいはログインしてください。






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

news022.jpg

「サイト内検索」ツール(有償版) 国内売れ筋TOP10(2021年7月)
サイト内検索(サイトサーチ)ツールは検索窓から自社サイト内のコンテンツを正確に、効...

news139.jpg

SNSの利用時間は77.8分、Instagram利用率は50%超え――Glossom調査
スマートフォンでの情報収集に関する定点調査。スマートフォンの利用時間は順調に増加し...

news061.jpg

インフルエンサーがスポーツ観戦で最も利用しているSNSは「Instagram」――LIDDELL調べ
東京五輪の開催中に情報収集や投稿でSNSを活用すると回答した人は全体の96.9%に上りまし...