Production Ready GraphQL

Table of Contents

  1. Preface
  2. Acknowledgments
  3. An Introduction to GraphQL
    1. One-Size-Fits-All
    2. Let's Go Back in Time
    3. Enter GraphQL
    4. Type System
    5. Introspection
    6. Summary
  4. GraphQL Schema Design
    1. What Makes an API Great?
    2. Design First
    3. Client First
    4. Naming
    5. Descriptions
    6. Use the Schema, Luke!
    7. Expressive Schemas
    8. Specific or Generic
    9. The Relay Specification
    10. Lists & Pagination
    11. Sharing Types
    12. Global Identification
    13. Nullability
    14. Abstract Types
    15. Static Queries
    16. Mutations
    17. Fine-Grained vs Coarse-Grained
    18. Errors
    19. Schema Organization
    20. Async Behavior
    21. Data-driven vs Use-Case-Driven Schemas
    22. Summary
  5. Implementing GraphQL Servers
    1. GraphQL Server Basics
    2. Code First vs Schema First
    3. Generating SDL Artifacts
    4. Resolver Design
    5. Schema Metadata
    6. Multiple Schemas
    7. Modular Schemas
    8. Testing
    9. Summary
  6. Security
    1. Rate Limiting
    2. Blocking Abusive Queries
    3. Timeouts
    4. Authentication
    5. Authorization
    6. Introspection
    7. Persisted Queries
    8. Summary
  7. Performance & Monitoring
    1. Monitoring
    2. The N+1 Problem and the Dataloader Pattern
    3. Caching
    4. Compiled Queries
    5. Summary
  8. Tooling
    1. Linting
    2. Analytics
    3. Summary
  9. Workflow
    1. Design
    2. Review
    3. Development
    4. Publish
    5. Analyze
    6. Ship
  10. Public GraphQL APIs
    1. GraphQL a Good Choice for Public APIs
    2. Conventions
    3. With Great Power comes Great Responsibility
    4. Summary
  11. GraphQL in a Distributed Architecture
    1. GraphQL API Gateway
    2. GraphQL as a BFF
    3. Service Communication
    4. Summary
  12. Versioning
    1. API Versioning is Never Fun
    2. Versioning GraphQL is Possible
    3. Continuous Evolution
    4. Change Management
    5. Summary
  13. Documenting GraphQL APIs
    1. Generators
    2. The What, Not Just the How
    3. Workflows and Use Cases
    4. Example Queries
    5. Changelogs
    6. Summary
  14. Migrating From Other API Styles
    1. Generators
    2. REST & GraphQL Alongside
    3. Summary
  15. Closing Thoughts