This site, and the repository.

This is GraphQL course curriculum, course work, and related assets focused around Spring Boot Java GraphQL APIs.

  1. Introduction to GraphQL
  2. GraphQL Schema Definition Language (SDL)
    • Scalar types (String, Int, Float, Boolean, etc.)
    • Object types and fields
    • Query and mutation types
    • Input types
    • Enum types
  3. GraphQL Queries
    • Query structure and syntax
    • Querying fields and nested fields
    • Arguments and variables in queries
    • Aliases and fragments
    • Querying related data with connections
  4. GraphQL Mutations
    • Creating, updating, and deleting data with mutations
    • Input types in mutations
    • Mutation response types and error handling
    • Batch mutations
    • Optimistic UI updates with mutations
  5. GraphQL Subscriptions
    • Real-time data updates with subscriptions
    • Subscribing to data changes
    • Setting up a subscription server
    • WebSocket protocols for subscriptions
    • Handling subscription events on the client
  6. Pagination and Filtering
    • Implementing pagination with cursors and limits
    • Filtering data with arguments
    • Sorting results
    • Relay pagination specification
  7. Authentication and Authorization
    • Securing GraphQL APIs
    • Authentication mechanisms (JWT, OAuth, etc.)
    • Protecting queries and mutations with authorization rules
    • Role-based access control (RBAC)
    • Handling authentication errors
  8. Performance and Caching
    • Efficient data fetching with GraphQL
    • Data loader pattern for batch loading
    • Caching GraphQL responses
    • Optimizing resolver functions
    • Pagination and batching strategies
  9. Advanced Topics
    • Schema stitching and federation
    • Custom directives
    • Error handling and validation
    • Introspection and schema introspection
    • GraphQL tooling and libraries (Apollo, Relay, etc.)

Example scenarios for each topic will vary depending on the application domain, but here are some general examples:

These examples should help provide a practical understanding of each topic while demonstrating the power and flexibility of GraphQL.