GraphQL and REST API Design — Learning Roadmap¶
This roadmap is your study plan. Work through the phases in order. Each phase builds directly on the previous one. Mark your current position with ← You Are Here and update it as you progress.
Prerequisites Map¶
Confirm you have working knowledge of these before entering Phase 1:
If either prerequisite is missing, complete it first and return here. See [[networks]] for HTTP fundamentals if needed.
Learning Path Visualization¶
flowchart TD
A([Prerequisites Met]) --> B
subgraph P1["Phase 1: Foundation • Weeks 1–3"]
B["Module 01: Introduction to APIs"]
B --> C["Module 02: REST Fundamentals"]
end
subgraph P2["Phase 2: Core Concepts • Weeks 4–7"]
D["Module 03: REST Advanced"]
D --> E["Module 04: API Authentication"]
E --> F["Module 05: GraphQL Fundamentals"]
end
subgraph P3["Phase 3: Applied Skills • Weeks 8–11"]
G["Module 06: GraphQL Resolvers"]
G --> H["Module 07: GraphQL Advanced"]
H --> I["Module 08: API Security"]
I --> J["Module 09: API Testing"]
end
subgraph P4["Phase 4: Mastery • Weeks 12–16"]
K["Module 10: API Gateway & Platforms"]
K --> L["Module 11: Event-Driven APIs"]
L --> M["Module 12: Capstone Project"]
M --> N(["Topic Complete ✓"])
end
C --> D
F --> G
J --> K
style A fill:#2a9d8f,color:#fff,stroke:none
style N fill:#2a9d8f,color:#fff,stroke:none
style P1 fill:#edf2fb,stroke:#8d99ae
style P2 fill:#fef3c7,stroke:#d97706
style P3 fill:#fee2e2,stroke:#dc2626
style P4 fill:#dcfce7,stroke:#16a34a
Phase Breakdown¶
Phase 1: Foundation¶
Goal: Understand what APIs are, how HTTP works at the level needed for API design, and see REST and GraphQL side by side at a high level. Leave Phase 1 able to make a simple API call and explain what's happening at each step.
| Module | Name | Est. Hours | Key Skill Gained |
|---|---|---|---|
| 01 | Introduction to APIs | 4 h | HTTP anatomy, REST constraints overview, first API call |
| 02 | REST Fundamentals | 5 h | Resource modeling, URI design, HTTP method semantics, status codes |
Phase 1 Exit Criteria:
- Can explain Fielding's 6 REST constraints from memory
- Can design a basic resource URI hierarchy for a simple domain
- Can make API calls using
curland Pythonrequests - Scored ≥ 70% on Module 01 and Module 02 tests
- Completed at least one Beginner-level project from PROJECTS.md
- GLOSSARY.md has at least 10 entries
Milestone unlocked: Foundation Built
Phase 2: Core Concepts¶
Goal: Develop fluency with REST best practices and start building with GraphQL. Leave Phase 2 able to build a complete REST API with authentication and document it with OpenAPI, and write GraphQL queries and mutations against a schema.
| Module | Name | Est. Hours | Key Skill Gained |
|---|---|---|---|
| 03 | REST Advanced | 6 h | Versioning, pagination, filtering, HATEOAS, OpenAPI spec |
| 04 | API Authentication | 6 h | OAuth2 flows, JWT, API keys |
| 05 | GraphQL Fundamentals | 6 h | SDL, queries, mutations, fragments, introspection |
Phase 2 Exit Criteria:
- Can write a complete OpenAPI 3.x specification for a REST API
- Can implement and explain the OAuth2 authorization code flow
- Can write GraphQL queries and mutations using variables and fragments
- Scored ≥ 75% on all Phase 2 module tests
- Completed at least one Intermediate-level project from PROJECTS.md
Milestone unlocked: REST Practitioner
Phase 3: Applied Skills¶
Goal: Go deep on GraphQL internals, API security, and testing. Leave Phase 3 able to build a production-quality API that handles the N+1 problem, implements proper security controls, and has a meaningful test suite.
| Module | Name | Est. Hours | Key Skill Gained |
|---|---|---|---|
| 06 | GraphQL Resolvers | 6 h | Resolver execution, DataLoader, batch loading |
| 07 | GraphQL Advanced | 7 h | Subscriptions, federation, persisted queries |
| 08 | API Security | 6 h | CORS, rate limiting, injection prevention |
| 09 | API Testing | 6 h | Contract tests, integration tests, performance tests |
Phase 3 Exit Criteria:
- Implemented the DataLoader pattern to solve the N+1 problem in a GraphQL API
- Can write a contract test with Pact for a REST API
- Can configure CORS correctly and explain why the same-origin policy exists
- Scored ≥ 80% on all Phase 3 module tests
- QUESTIONS.md open questions are mostly resolved (status 🟢)
Milestone unlocked: GraphQL Ready
Phase 4: Mastery¶
Goal: Synthesize everything. Learn the infrastructure layer (gateways, event-driven patterns), then build a non-trivial API platform as your capstone.
| Activity | Est. Hours | Description |
|---|---|---|
| Module 10: API Gateway | 6 h | Kong, AWS API Gateway, gateway patterns |
| Module 11: Event-Driven APIs | 5 h | Webhooks, SSE, WebSockets, delivery guarantees |
| Module 12: Capstone Project | 15 h | Build a full REST + GraphQL API with auth, rate limiting, tests |
| Topic Review | 4 h | Revisit modules where test scores were below 80% |
Phase 4 Exit Criteria:
- Capstone project complete: REST API + GraphQL API, OpenAPI docs, OAuth2 auth, tests
- Overall topic score ≥ 80% (see Test Scores in topic README)
- CHEATSHEET.md is complete and genuinely useful as a reference
- GLOSSARY.md has definitions for every term encountered throughout the topic
- At least one teaching artifact exists (blog post, write-up, or recorded explanation)
Milestone unlocked: API Architect
Time Estimates Summary¶
| Phase | Weeks | Est. Hours | Cumulative |
|---|---|---|---|
| Phase 1: Foundation | 1–3 | 9 h | 9 hrs |
| Phase 2: Core Concepts | 4–7 | 18 h | 27 hrs |
| Phase 3: Applied Skills | 8–11 | 25 h | 52 hrs |
| Phase 4: Mastery | 12–16 | 30 h | 82 hrs |
| Total | 16 | ~82 hrs |
[!NOTE] These estimates assume roughly 5–7 focused hours per week. If you're studying part-time, the calendar weeks will stretch accordingly. Adjust the schedule to fit your life — consistency matters more than pace.
Milestone Definitions¶
| Milestone | Earned When | Point Threshold |
|---|---|---|
| First Step | Module 01 complete | Any score |
| Foundation Built | Phase 1 complete, all tests ≥ 70% | 50 pts |
| REST Practitioner | Phase 2 complete, all tests ≥ 75% | 150 pts |
| GraphQL Ready | Phase 3 complete, all tests ≥ 80% | 280 pts |
| API Architect | Phase 4 complete, capstone done, overall ≥ 80% | 380 pts |
Alternative Paths¶
Fast Track (If You Have REST Experience)¶
If you already have solid REST experience and want to focus on GraphQL:
Skim Module 01 → Take Module 02 test (if ≥ 85%, skip to Module 03) →
Skim Modules 03–04 → Start deeply at Module 05
Take Module 01 and 02 tests first. If you score ≥ 85%, skip to Module 03.
Deep Dive Path (Maximum Understanding)¶
For maximum depth, add these supplementary activities between phases:
- After Phase 1: Read Roy Fielding's dissertation (Ch. 5 covers REST) — [Verify URL at UCI]
- After Phase 2: Read the GraphQL specification at graphql.org/learn
- After Phase 3: Study the Apollo Federation documentation in depth
Project-First Path (Learn by Building)¶
If you learn best by doing rather than reading:
Module 01 → Build a tiny REST API → Module 02 → Add proper resource design →
Module 03 → Add versioning and pagination → ...
Alternate one module of theory with one hands-on project at each step.
You Are Here¶
Current Phase: Not started
Current Module: None — begin at Module 01
Last Completed Module: None
Next Action: Open Module 01 and read the Overview section.
Update this section each time you advance to a new module or phase.