slug: api-design
title: "API Design -- REST, GraphQL, and Contract-First Thinking"
version: 1.0.0
description: "Design production-ready APIs with REST, GraphQL, and contract-first practices."
category: architecture
tags: [api, rest, graphql, api-design, contracts, openapi]
difficulty: intermediate

xp:
  read: 15
  walkthrough: 40
  exercise: 25
  quiz: 20
  quiz-perfect-bonus: 10
  game: 25
  game-perfect-bonus: 10

time:
  quick: 5
  read: 20
  guided: 50

prerequisites: []
related: [system-design, solid-principles]

triggers:
  - "How do I design a good REST API?"
  - "REST vs GraphQL — when to use which?"
  - "What is contract-first API design?"
  - "How do I version an API?"

visuals:
  diagrams: [diagram-mermaid, diagram-architecture]
  quiz-types: [quiz-matching, quiz-fill-blank]
  game-types: [speed-round, classify]
  playground: bash
  slides: true

sources:
  - url: "https://github.com/microsoft/api-guidelines"
    label: "Microsoft REST API Guidelines"
    type: docs
  - url: "https://cloud.google.com/apis/design"
    label: "Google API Design Guide"
    type: docs
