Skip to content
New this month 24 fresh C++, C#, F#, JavaScript, TypeScript and Lua courses just landed. Browse new releases Use code WELCOME10 for 10% off your first order · 14-day refund
Web Development Intermediate

API Design for Developers: REST, Versioning and Error Contracts

Design HTTP APIs that stay usable, documented and stable long after version one.

Rated 4.5 out of 5 from 2 reviews 10 students

MH Created by Marcus Hale

  • Last updated August 2026
  • English
  • 4h 22m of material
  • 33 lessons

What you will learn

8 concrete outcomes

Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.

  • Model resources and relationships so the API survives changing requirements
  • Use HTTP methods, status codes, ETags and idempotency keys correctly
  • Design consistent errors with RFC 9457 problem details and stable machine codes
  • Choose pagination, filtering and sorting conventions that scale past a large table
  • Apply rate limiting with headers that let clients behave well
  • Version an API and run a deprecation policy with sunset headers and clear timelines
  • Write an OpenAPI specification first and generate a typed client from it
  • Prevent drift between specification and implementation with contract tests

Course curriculum

6 modules · 33 lessons · 4h 22m of material

7 lessons running 56m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 lessons running 46m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 lessons running 48m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 lessons running 46m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

4 lessons running 32m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

4 lessons running 34m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 modules · 33 lessons

4h 22m total length

Requirements

Short list, and deliberately so. If you meet these you can start today.

  • You have built or consumed at least one HTTP API
  • Comfortable with JSON and basic backend development in any language
  • Node 20 or newer for the OpenAPI and client generation exercises

About this course

An API is a promise you have to keep. The code behind it can change freely, but the shape of a response, the meaning of a status code and the format of an error become obligations the moment a second team depends on them. This course is about making those promises deliberately.

It covers resource modelling that survives requirement changes, choosing between nesting and flat resources, when a remote procedure style endpoint is honestly the better fit, and correct use of HTTP methods, status codes, idempotency keys and conditional requests with ETags. Errors get a full module, because inconsistent errors are the most common complaint about internal APIs: RFC 9457 problem details, machine-readable codes, field-level validation errors and what never belongs in a message.

The rest covers pagination strategies and why cursors beat offsets at scale, filtering and sorting conventions, partial responses, rate limiting with informative headers, authentication choices, and versioning done properly with an explicit deprecation policy and sunset headers. You will write an OpenAPI specification first, generate a typed client from it, and add contract tests so the specification cannot silently drift. A closing module compares REST with GraphQL and gRPC honestly.

Frequently asked questions

Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.

No. Examples use Node and TypeScript, but the design decisions apply identically to .NET, Go, Python or Java backends.

In a comparison module that explains where GraphQL and gRPC genuinely fit better, and where REST over HTTP remains the simpler choice.

A whole module covers this: additive change rules, when a new major version is unavoidable, and running two versions with a documented sunset date.

Checkout is handled on our provider's secure payment page. The moment your payment clears we email your personal access link and access code to the address you used at checkout, and the same link appears in your account library. There is nothing to install and nothing to wait for.

Email misteryjj100@gmail.com within 14 days of your purchase, quote your order number, and we refund the full amount to your original payment method. No form to fill in and no questions about how much of the course you watched.

What students say

Reviews are written by people who bought this course. We publish the critical ones too.

4.5

Rated 4.5 out of 5

Course rating · 2 reviews

Rating distribution

  • 5 stars 50%
  • 4 stars 50%
  • 3 stars 0%
  • 2 stars 0%
  • 1 star 0%
  • CM

    Charlotte Mbeki

    Backend engineer

    Feb 2026
    Rated 5.0 out of 5

    Idempotency keys, covered where it matters

    Every payment-adjacent API I have built has fudged retry behaviour somewhere. This is the most concrete treatment I have found of where you store an idempotency key, how long you keep it and what you return on a repeat.
  • KM

    Krzysztof Mazur

    API architect

    Oct 2025
    Rated 4.0 out of 5

    Opinionated on versioning

    We took the problem-details format wholesale and have not regretted it once. The versioning chapter argues hard for putting the version in the path and rather waves away header negotiation, which is unhelpful when your organisation committed to headers years ago. Give both approaches a fair hearing and this is a five.

Your instructor

MH

Marcus Hale

Web engineer and JavaScript educator

  • 259 students taught
  • 12 courses published
  • 4.7 instructor rating
  • JavaScript
  • TypeScript
  • React
  • Node.js

Marcus has shipped front ends for two ad-tech startups and one very large retailer, which taught him more about performance budgets than any blog post could. He teaches JavaScript and TypeScript from the runtime up — event loop first, framework second — then follows the same code through Node on the server side. Every one of his courses ends with a deployed application rather than a folder of exercises. He writes a weekly newsletter on browser performance.

$25 USD

One-time payment · lifetime access

The WisdomCharms dispatch

One useful email a week. No fluff, no spam.

New course releases, discount codes before anyone else, and a short, practical breakdown of one technique — a prompt pattern, a C++ idiom, a TypeScript trick — that you can use the same day.

  • Subscriber-only launch pricing
  • Unsubscribe in one click
  • We never sell your address

By subscribing you agree to our Privacy Policy. Questions? Write to misteryjj100@gmail.com.