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 マーケティング新着記事

news144.jpg

「BOTANIST」を生んだI-neが上場 強いブランドの秘密とは?
「BOTANIST」運営のI-neが東京証券取引所マザーズに上場。テクノロジーとマーケティング...

news052.jpg

Disney飛躍の立役者ボブ・アイガー氏が語る 「積み上げてきた価値を『崇拝』せず『尊重』せよ」
The Walt Disney Companyを巨大メディア企業に成長させた前CEOのボブ・アイガー氏が、レ...

news048.jpg

組織内のデータの半分以上が「ダークデータ」 回答者の66%――Splunk調査
「ダークデータ」とは活用できていない 、もしくは把握すらできていないデータのこと。