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

[cover photo]
  • 2019年11月 発行
  • 256ページ
  • ISBN978-4-87311-893-2
  • 原書: Learning GraphQL
  • フォーマット 本 PDF EPUB

オライリー・ジャパンで書籍を購入:
定価2,860円

Ebook Storeで電子版を購入:
価格2,288円

今日では多くのWebサービスがRESTアーキテクチャスタイルで実装されています。RESTは2000年にフィールディングの論文で提唱された後に爆発的に普及し洗練されてきました。一方で、本書で紹介するGraphQLは2015年にFacebookによって公開されたRESTとは異なるアプローチのアーキテクチャです。GraphQLの最大の特徴はクエリ言語を用いてデータを操作する点です。クエリ言語の表現力の高さによりクライアントは本当に必要なリクエストを送ることができます。本書ではGraphQLの概要とGraphQLを用いたWebサービスの開発方法を実装例に沿って紹介します。認証やファイルアップロードといった実践的なトピックまで踏み込んだGraphQLの実用的な入門書です。

関連書籍

Node.jsデザインパターン 第2版
Reactビギナーズガイド
RESTful Webサービス
Web API: The Good Parts
アイソモーフィックJavaScript
入門 React

賞賛の声
訳者まえがき
まえがき

1章 GraphQLへようこそ
    1.1 GraphQLとは
        1.1.1 GraphQLの言語仕様
        1.1.2 GraphQLの設計原則
    1.2 GraphQLの誕生
    1.3 データ通信の歴史
        1.3.1 RPC
        1.3.2 SOAP
        1.3.3 REST
    1.4 RESTの課題
        1.4.1 過剰な取得
        1.4.2 過小な取得
        1.4.3 RESTのエンドポイント管理
    1.5 GraphQLの実情
        1.5.1 GraphQLのクライアント

2章 グラフ理論
    2.1 グラフ理論の用語
    2.2 グラフ理論の歴史
    2.3 木というグラフ
    2.4 実世界でのグラフ

3章 GraphQLの問い合わせ言語
    3.1 GraphQL APIの便利なツール
        3.1.1 GraphiQL
        3.1.2 GraphQL Playground
        3.1.3 公開GraphQL API
    3.2 GraphQLのクエリ
        3.2.1 エッジと接続
        3.2.2 フラグメント
    3.3 ミューテーション
        3.3.1 クエリ変数
    3.4 サブスクリプション
    3.5 イントロスペクション
    3.6 抽象構文木

4章 スキーマの設計
    4.1 型定義
        4.1.1 型
        4.1.2 スカラー型
        4.1.3 Enum
    4.2 コネクションとリスト
        4.2.1 一対一の接続
        4.2.2 一対多の接続
        4.2.3 多対多の接続
        4.2.4 異なる型のリスト
    4.3 引数
        4.3.1 データのフィルタリング
    4.4 ミューテーション
    4.5 入力型
    4.6 返却型
    4.7 サブスクリプション
    4.8 スキーマのドキュメント化

5章 GraphQLサーバーの実装
    5.1 プロジェクトのセットアップ
    5.2 リゾルバ
        5.2.1 ルートリゾルバ
        5.2.2 型リゾルバ
        5.2.3 InputとEnumの使用
        5.2.4 エッジと接続
        5.2.5 カスタムスカラー型
    5.3 apollo-server-express
    5.4 コンテキスト
        5.4.1 MongoDBのインストール
        5.4.2 コンテキストへのデータベースの追加
    5.5 GitHub認可
        5.5.1 GitHub OAuthのセットアップ
        5.5.2 認可プロセス
        5.5.3 githubAuthミューテーション
        5.5.4 ユーザーの認証
    5.6 まとめ

6章 GraphQLクライアントの実装
    6.1 GraphQL APIの利用
        6.1.1 フェッチリクエスト
        6.1.2 graphql-request
    6.2 Apollo Client
    6.3 Apollo ClientとReact
        6.3.1 プロジェクトの準備
        6.3.2 Apollo Clientの設定
        6.3.3 Queryコンポーネント
        6.3.4 Mutationコンポーネント
    6.4 認可
        6.4.1 ユーザー認可
        6.4.2 ユーザー識別
    6.5 キャッシュ
        6.5.1 フェッチポリシー
        6.5.2 キャッシュの永続化
        6.5.3 キャッシュの更新

7章 GraphQLの実戦投入にあたって
    7.1 サブスクリプション
        7.1.1 サブスクリプションの利用
        7.1.2 サブスクリプションの処理
    7.2 ファイルアップロード
        7.2.1 サーバーでアップロードを処理する
        7.2.2 Apollo Clientを使用した写真の新規投稿
    7.3 セキュリティ
        7.3.1 リクエストタイムアウト
        7.3.2 データの制限
        7.3.3 クエリ深さの制限
        7.3.4 クエリの複雑さ制限
        7.3.5 Apollo Engine
    7.4 次の段階にすすむ
        7.4.1 漸進的なマイグレーション
        7.4.2 スキーマファースト開発
        7.4.3 GraphQLイベント
        7.4.4 コミュニティ
        7.4.5 コミュニティのSlackチャンネル

付録A Relay各仕様解説
    A.1 Global Object Identification
    A.2 Cursor Connections
    A.3 Input Object Mutations
    A.4 Mutations updater

索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]