GraphQLとは
graphQLの概要についてはこちらより引用
GraphQL (グラフキューエル、グラフQL) とは、API (アプリケーション・プログラミング・インタフェース向けのクエリ言語とサーバーサイドのランタイムの両方を指します。GraphQL は、クライアントがリクエストしたデータのみを返すことを優先します。
GraphQL は、API の速度、柔軟性、開発者にとっての使いやすさを向上させるために設計されました。GraphiQL と呼ばれる統合開発環境 (IDE) にデプロイすることもできます。GraphQL は REST の代わりに、データを複数のデータソースから取得するリクエストを 1 つの API 呼び出しで構成できます。
さらに、GraphQL によって、既存のクエリに影響を与えずに、フィールドを追加したり、その使用を停止したりできるため、API の柔軟な保守が可能です。開発者は API を任意の方法で構築することができ、構築された API は GraphQL の仕様に基づいて、クライアントに対して予測可能な仕方で動作します。
GraphQLのメリット
-
少ないリクエストで複数のリソースにアクセスできる
REST APIは情報にアクセスするエンドポイントが多くなりがちだが、その問題を回避できる。
また、複数の情報にアクセスするために複数のリクエストを送る必要がなく、一度にまとめて取得することができる。 -
必要なデータのみ取得できる
REST APIでは返却されたデータが必要なデータより少なかったり(アンダーフェッチ)多かったり(オーバーフェッチ)する。GraphQLではクライアントが要求した必要なデータのみを取得することができる。 -
強い型付けのスキーマである
スキーマに型を指定することで、フロントエンドとバックエンドの型の食い違いを防ぐことができる
GraphQLのデメリット
-
学習コストの高さ
GraphQLは2015年に登場したものであるため、情報が少なく習得するまでに時間がかかる。 -
RESTよりもキャッシュが複雑になりやすい
RRST APIはURLベースでキャッシュを生成するため、比較的容易に扱うことができる。GraphQLのキャッシュはURLを生成せずレスポンス内容も異なるため、複雑になる。
参照