- 会員限定
- 2022/08/26 掲載
GraphQLが大注目のグラフAPIとは? 「REST API時代終了」後に注目すべきAPIの新潮流
フロントエンド開発向けにGraphQLに着目する
現在、多くの企業がデータ連携などで「API(Application Programming Interface)」を活用している。その主流はREST APIだが、REST APIが支配する時代が終わろうとしている。また、中央集権型のAPIゲートウェイの時代も終焉を迎えつつある。ガートナーが2021年7月に発表したAPIとビジネスに関するハイプサイクルにおいて、グラフAPIは話題が先行し、黎明期から過度な期待のピーク期に差し掛かろうとしている。
しかし、GraphQLはまだハイプサイクルには入ってきていない。これは、すべてのグラフAPIがGraphQLを使っているわけではないからだ。Microsoft Graph APIやSAP Graphなどの一般的なAPIはREST APIである。
SAP GraphはOData v4を使っており、このような場合は必ずしもGraphQLを使わなければならないというわけではない。GraphQLを使わずとも、データで関係を示したり、グラフに基づいてクエリを実行したりすることは可能だ。
ただ、それでも多くの企業がGraphQLを使用しているのは、フロントエンド開発でメリットがあるためだ。GraphQLは、もともとはFacebookが開発したもので、フロントエンドの開発に軸足を置いていた。
フロントエンドの開発というと、たとえばコンシューマーが使うモバイルアプリやWebアプリ、音声対応のアプリケーションなどの開発を指すが、実現するためにはバックエンドのデータへのアクセスが必要となる。新しい機能や新しいエクスペリエンスを顧客に提供するためには、多くの場合、短期間でこれを実現する必要がある。そこで、GraphQLのAPIがバックエンドにあれば、即座に、柔軟にフロントエンドに対応できる。
「フロントエンドのスタックでも、たとえばReactなどと相性がよいです。ですから、GraphQLはフロントエンドのエクスペリエンスのためにAPIを提供するソリューションとして、検討する価値はあります」(オニール氏)
GraphQLサーバの機能とセキュリティ
バックエンドからGraphQLを提供しているため、GraphQLサーバと呼ばれている。GraphQLサーバの機能として、まずクエリの解析が挙げられる。フロントエンドからのリクエストに応えるために何をすべきか解析する機能だ。多くの場合、さまざまなデータソースに接続されている。通常それらデータベースはグラフ機能を持たず、GraphQLをサポートしていない。そのため、古いデータソースの前にGraphQLを重ねる必要がある。
また、GraphQLサーバはキャッシングの機能も備えている。同じリクエストが来た時に、毎回処理をして演算能力を消費しないようにするためだ。またサブスクリプションもサポートする。そして非常に重要な機能は、データへのアクセス制御だ。
「この分野には多くのベンダーがいます。Apolloなどはかなり普及していますし、Hasura、StepZen、Tykなどです。また、多くのクラウドプロバイダーも、クラウドネイティブなアーキテクチャーの一部としてGraphQL機能を提供しています」(オニール氏)
GraphQLに関連して、セキュリティがよく話題に上がる。データへのアクセスを可能にするものなので当然のことだろう。「多くのセキュリティ関係者は、GraphQLの考え方自体に恐怖を感じている」とオニール氏は話す。
「クライアントは、GraphQLサーバを通じてあらゆるものにアクセスできてしまいます。非常に、広く、深い、複雑なクエリができてしまう。これらのクエリは、全てGraphQLサーバでサポートされなければならないわけです」(オニール氏)
この懸念に対し、ベストプラクティスが生まれてきている。たとえば、本番稼働前のテスト環境で、フロントエンドのアプリケーションがGraphQLをどのように使うか、自然な使い方を確認し、本番環境ではその使い方だけができるよう制限することだ。また、アクセス制御は、GraphQL、APIレベルだけでなく、フィールドやオブジェクトレベルで制御することも重要となる。
【次ページ】マイクロサービスのコストとメリット
関連コンテンツ
関連コンテンツ
PR
PR
PR
今すぐビジネス+IT会員にご登録ください。
すべて無料!今日から使える、仕事に役立つ情報満載!
-
ここでしか見られない
2万本超のオリジナル記事・動画・資料が見放題!
-
完全無料
登録料・月額料なし、完全無料で使い放題!
-
トレンドを聞いて学ぶ
年間1000本超の厳選セミナーに参加し放題!
-
興味関心のみ厳選
トピック(タグ)をフォローして自動収集!
投稿したコメントを
削除しますか?
あなたの投稿コメント編集
通報
報告が完了しました
必要な会員情報が不足しています。
必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。
-
記事閲覧数の制限なし
-
[お気に入り]ボタンでの記事取り置き
-
タグフォロー
-
おすすめコンテンツの表示
詳細情報を入力して
会員限定機能を使いこなしましょう!
「」さんのブロックを解除しますか?
ブロックを解除するとお互いにフォローすることができるようになります。
ブロック
さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。
さんをブロックしますか?
ブロック
ブロックが完了しました
ブロック解除
ブロック解除が完了しました