「基礎から始めるGraphQL」の感想・備忘録

スポンサーリンク

点数

70点

感想

説明が足りない部分が多く、わかりづらかった。

通常はRESTで十分なので、特別な要件がない限りはGraphQLが必要になることはないと思う。

GraphQLとは

  • APIのクエリ言語とそれをサーバーサイド実行するためのランタイムの両方を指す。
  • 使用の際にはGraphQLサーバの構築が必要である。
  • サーバにはApollo Server、GraphQL-JS、graphQL Yogaなどがある。
  • フロントエンドからGraphQLに直接クエリを実行することもできるが、Apollo Client, Relayなどのクライアントライブラリを使うと作業が簡単になる。
  • Apollo ServerとApollo Clientを使うのが一般的。
    (ApolloはGraphQLのフロントエンドとバックエンドのオープンソースライブラリ)

REST APIとの比較

REST APIの場合

データ取得は以下のようなリクエストとなる。

  • /user /user/100
  • /user/100/posts
  • /user/100/posts/77

GraphQLの場合

1つのリクエストで全てを取得することができるようになるため、よリクエスト回数を減らすことができる。
(条件を指定することで必要なデータのみ取得可能)

  • /graphql

GraphQLの構成

クエリ言語とスキーマ言語の2つで構成されている。

クエリ言語

GraphQLサーバにリクエストするための言語で以下の3種類がある。

  1. query: データ取得
  2. mutation: 更新系
  3. subscription: イベント通知

スキーマ言語

  • GraphQL APIの仕様を記述するための言語。
  • リクエストはスキーマ言語で記述したスキーマに従って実行されレスポンスを生成する。
  • スキーマ言語はあくまで仕様の定義のみで、実際のデータ操作はリゾルバと呼ばれるメソッドになる。
    (スキーマがインターフェース、リゾルバがそれを実装したメソッド)

コメント