GraphQL and REST API Design — Resources¶
[!WARNING] Verified resources only. Every entry in this file must be something you have personally confirmed exists, is accessible, and is genuinely useful. Do not add resources based on hearsay, AI suggestions, or titles that "sound right." A short list of excellent resources beats a long list of unverified ones.
Official Documentation¶
- GraphQL Specification — The authoritative specification for the GraphQL language, maintained by the GraphQL Foundation. Essential reference for understanding what GraphQL actually guarantees vs. what is implementation-specific.
- GraphQL.org Learn — Official introduction to GraphQL concepts; well-structured and accurate.
- OpenAPI Specification 3.x — The official OpenAPI specification. Use as reference when writing OpenAPI documents.
- Swagger Editor / OpenAPI Tools — Official Swagger tooling for editing, validating, and visualising OpenAPI specs.
- MDN HTTP Reference — Mozilla's comprehensive reference for HTTP methods, status codes, headers, and concepts. The best free HTTP reference on the web.
- RFC 7231 — HTTP/1.1 Semantics — The definitive specification for HTTP method semantics and status codes. Worth reading the method and status-code sections directly.
Books¶
| Title | Author(s) | Level | Format | Notes |
|---|---|---|---|---|
| [Verify: "Designing Web APIs" by Brenda Jin, Saurabh Sahni, Amir Shevat — confirm publisher and ISBN before citing] | Jin, Sahni, Shevat | Intermediate | Print/eBook | Practical guide to API design decisions; covers REST, GraphQL, and real-world versioning challenges |
| [Verify: "GraphQL in Action" by Samer Buna — confirm edition and publisher] | Samer Buna | Beginner–Intermediate | Print/eBook | Hands-on introduction to GraphQL with Node.js examples |
| Roy Fielding's Dissertation, Ch. 5: "Representational State Transfer" | Roy Fielding | Advanced (primary source) | Online (free) | The original definition of REST — [Verify URL: University of California, Irvine repository] |
Use ISBN or direct publisher links where possible to avoid linking to pirated copies.
Online Courses¶
| Course | Platform | Level | Free? | Notes |
|---|---|---|---|---|
| [Verify: "APIs and Web Services" on Coursera — confirm exact title and offering university] | Coursera | Beginner | Audit free | Introduction to REST API concepts |
| GraphQL.org Learn Path | graphql.org | Beginner | Free | Official step-by-step introduction |
| [Verify: Apollo GraphQL tutorials at apollographql.com/tutorials — confirm URL] | Apollo GraphQL | Intermediate | Free | Hands-on Apollo Server and Client tutorials |
Video Resources¶
| Title / Channel | Type | Level | Notes |
|---|---|---|---|
| [Verify: REST API tutorials on YouTube — confirm specific channel/video before citing] | Various | Beginner | Do not add unverified YouTube links |
| [Verify: GraphQL introduction by Lee Byron or Sashko Stubailo — confirm exact talk title and conference] | Conference talk | Intermediate | GraphQL origin story from its creators |
Papers & Research¶
| Title | Authors | Year | Link | Why It Matters |
|---|---|---|---|---|
| "Architectural Styles and the Design of Network-based Software Architectures" (Ch. 5) | Roy T. Fielding | 2000 | [Verify: UCI repository URL] | The original REST definition — every REST API practitioner should read at least Chapter 5 |
Tools & Libraries¶
| Tool / Library | Language | Purpose | Link |
|---|---|---|---|
curl |
CLI | Making HTTP requests from the command line | curl.se |
httpie |
CLI/Python | Human-friendly HTTP client for the terminal | httpie.io |
| Postman | GUI | API exploration, testing, and documentation | postman.com |
| Apollo Server | JavaScript/Node.js | GraphQL server implementation | apollographql.com/docs/apollo-server |
| Apollo Client | JavaScript | GraphQL client for React/other frameworks | apollographql.com/docs/react |
graphql-js |
JavaScript | Reference implementation of the GraphQL specification | github.com/graphql/graphql-js |
strawberry-graphql |
Python | GraphQL server library with type annotations | strawberry.rocks |
ariadne |
Python | Schema-first GraphQL for Python | ariadnegraphql.org |
| FastAPI | Python | REST API framework with built-in OpenAPI generation | fastapi.tiangolo.com |
| DataLoader | JavaScript | Batch-loading utility for solving the N+1 problem | github.com/graphql/dataloader |
| Pact | Multi-language | Consumer-driven contract testing | pact.io |
| Kong | Platform | Open-source API gateway | konghq.com/kong |
Communities¶
| Community | Platform | Focus | Link |
|---|---|---|---|
| r/graphql | GraphQL discussion | reddit.com/r/graphql | |
| GraphQL Foundation | GitHub | Specification and ecosystem | github.com/graphql |
| Stack Overflow — graphql tag | Stack Overflow | Technical Q&A | stackoverflow.com/questions/tagged/graphql |
| Stack Overflow — rest tag | Stack Overflow | Technical Q&A | stackoverflow.com/questions/tagged/rest |
Cheat Sheets & Quick References¶
- HTTP Status Codes — MDN's complete reference for every HTTP status code with explanations
- HTTP Methods Reference — MDN's reference for all HTTP methods with semantics
- GraphQL Cheat Sheet (unofficial) — devhints.io quick reference (verify content before relying on it)
See also the local CHEATSHEET.md which you'll build yourself as you study.
My Recommendations¶
Fill in as you progress — what actually helped you most?
Best for Absolute Beginners¶
To be filled in
Best for Building Mental Models¶
To be filled in
Best for Practical / Hands-On Learning¶
To be filled in
Best Deep Reference¶
To be filled in
Resources to Evaluate¶
Drop links here when you find something but haven't verified it yet.
- Roy Fielding's dissertation (Chapter 5) — needs direct URL verification
- "Designing Web APIs" book — needs ISBN and confirmed publisher details
- Apollo GraphQL tutorials URL — needs verification of current URL structure