学習ロードマップ
REST との違い、スキーマ設計、N+1 問題、キャッシュやページングまで、現場で保守できる GraphQL API を作るためのロードマップ。
このロードマップが扱うもの
このロードマップは、REST API の開発経験がありつつ、GraphQL を採用するプロジェクトで設計に責任を持ちたいバックエンド / フルスタックエンジニアを対象にしています。学び終えたときには、スキーマ設計の原則、パフォーマンス上の注意点、認可やエラー設計まで含めて、チームで運用可能な GraphQL API を提案・実装できる状態を目指します。
このロードマップの全体像
このロードマップは、REST API の開発経験がありつつ、GraphQL を採用するプロジェクトで設計に責任を持ちたいバックエンド / フルスタックエンジニアを対象にしています。学び終えたときには、スキーマ設計の原則、パフォーマンス上の注意点、認可やエラー設計まで含めて、チームで運用可能な GraphQL API を提案・実装できる状態を目指します。
1. GraphQL の基礎と REST との違い: クエリ、ミューテーション、サブスクリプション、単一エンドポイントの意味と副作用の扱いを整理します。 2. スキーマファーストの設計: 型、インターフェース、Union、Enum を使った表現力と、ドメインモデルへの対応づけを身につけます。 3. リゾルバと N+1 問題: DataLoader や バッチング、キャッシュを使った性能対策、アクセスパターンに即した設計を学びます。 4. ページング・フィルタ・リレーションの慣習: Relay 系 Cursor ページングや Connection パターンなど、業界標準の形に揃えます。 5. 認可・エラー・バージョニング: Field レベルの認可、ドメインエラーの表現、破壊的変更を避ける運用戦略を設計します。 6. クライアントと運用: 代表的なクライアント、永続化クエリ、スキーマチェック、トレース/メトリクスまで、運用に必要な周辺を揃えます。
GraphQL は「好きに取れる」強みの裏で、実装を間違えると N+1 や高コストクエリが簡単に発生します。フィールド単位のコスト、深さ制限、クエリ許可リストなど、パフォーマンスとセキュリティの両方を早期に設計へ織り込む必要があります。破壊的変更の扱いは REST とは異なり、バージョニングより deprecation 中心になります。周辺では、ドメインモデリング、RDB と ORM、REST API 設計、キャッシュ戦略、OAuth/OIDC を含む認可、可観測性(ログ・メトリクス・トレース)を並行して整理しておくと、GraphQL を採用すべきか、どう運用するかの判断が具体的になります。
ロードマップ
第 1 章