ISBN 9784873118932

初めてのGraphQL : Webサービスを作って学ぶ新世代API

初めてのGraphQL : Webサービスを作って学ぶ新世代API
刊行
2019-11

概要

GraphQL のクエリ言語とスキーマ設計を実装を通じて習得する

想定読者

REST API に慣れた Web 開発者で、GraphQL の概念から Apollo Server / Client による実装まで一冊で押さえたい人

こんな人には向いていない

  • GraphQL を既に本番運用しており、N+1 問題・フェデレーション・スキーマ設計の深化を求める人には内容が基礎寄りすぎる
  • バックエンドの言語・フレームワーク依存の実装詳細(Python / Go / Java 等)を求める人には Apollo / Node.js 中心の構成がミスマッチ
  • REST の概念自体が曖昧な段階のプログラミング初学者には前提知識として HTTP とクライアント・サーバーモデルの理解が必要

読了後にできるようになること

  • GraphQL のクエリ・ミューテーション・サブスクリプションの違いと使い分けを説明できる
  • スキーマ定義言語(SDL)を使って API の型・リレーションを設計できる
  • Apollo Server でリゾルバを実装し、Node.js ベースの GraphQL サーバーを構築できる
  • Apollo Client と React を組み合わせてフロントエンドからクエリを発行する構成を実装できる
  • REST と比較したオーバーフェッチ・アンダーフェッチの問題を GraphQL でどう解決するか説明できる
  • 認証・ファイルアップロード・セキュリティといった本番寄りのトピックの基礎を把握できる

本書のキー概念(章解説)

  • 第 1 章 GraphQL へようこそ — REST との差分を整理する章。既存 API 経験者はここで全体感をつかむ
  • 第 2 章 グラフ理論 — グラフ構造の基礎。読み飛ばして後から戻っても支障は少ない
  • 第 3 章 GraphQL クエリ言語 — 本書の核心。フィールド・引数・エイリアス・フラグメントを体系的に習得できる
  • 第 4 章 スキーマの設計 — SDL による型定義とリレーション設計。API 設計者が最も参照する章
  • 第 5 章 GraphQL API の作成 — Apollo Server でリゾルバを実装するハンズオン。実装前に読む
  • 第 6 章 GraphQL クライアント — Apollo Client と React の統合。フロントエンド担当者向けのメイン章
  • 第 7 章 本番環境への移行 — サブスクリプション・ファイルアップロード・セキュリティを扱う。実運用前に通読を推奨

ハイライト

  • GraphQLは2015年にFacebookにより公開された、RESTとは異なるアプローチのアーキテクチャ。クエリ言語を用いてデータを操作し、その表現力の高さにより本当に必要なリクエストを送ることができる。(REST との本質的な差分がもっとも端的に示されている箇所)
  • GraphQL APIの仕様を表現するものです。スキーマ定義言語(SDL)を使って表現します。GraphQL APIを構築するにあたり、FW、言語に依存せずにSDLで表現できます。(SDL の言語非依存性という GraphQL の設計思想を示す実務的な観点)

外部からの言及

  • GraphQL のスキーマ・型定義を解説する記事で本書が参考文献として繰り返し挙げられており、SDL の体系的な説明を求める際のリファレンスとして機能している(qiita)
  • Go や Relay など異なる実装スタックを扱う記事でも基礎概念の出典として引用されており、フレームワーク横断の入門書として一定の信頼を得ている(qiita)

編集メモ

Qiita で ISBN 直接引用 3 件 / 累計 likes 約 410(最大単一記事 350)。スキーマ解説・Go 実装・Relay 仕様など多様な観点の記事から参照文献として採用されており、GraphQL 入門書の定番ポジションに位置する。qiita_article_count が 10 件未満のため essential には届かない

読む前に押さえておきたいこと

  • HTTP リクエスト・レスポンスの基礎(GET / POST の違い、JSON 形式)
  • JavaScript / Node.js の非同期処理の基礎(Promise または async/await)
  • React の基本的な使い方(useState 程度で十分)

学習のコツ

  • REST API の実装経験があれば第1章のオーバーフェッチ比較を読んだ後、第3〜4章(クエリ言語・スキーマ設計)を先に通読すると全体像が早くつかめる
  • 第5・6章のハンズオンは手を動かしながら読むと定着が早い。公式の Apollo Sandbox を使うとローカル環境構築の手間を省ける
  • Apollo 以外のスタック(Lighthouse / gqlgen 等)を使う場合でも第3〜4章のスキーマ・クエリ言語部分は言語非依存で有効なので、実装章は読み飛ばしても概念習得に支障はない
  • 第7章のサブスクリプション・セキュリティは入門段階では読み流しで構わない。本番導入フェーズで改めて参照する用途に向いている
出版社による内容紹介

GraphQLは2015年にFacebookにより公開された、RESTとは異なるアプローチのアーキテクチャ。クエリ言語を用いてデータを操作し、その表現力の高さにより本当に必要なリクエストを送ることができる。本書ではGraphQLの概要と、GraphQLを用いたWebサービスの開発方法を実装例に沿って紹介。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。