Great for design reviews
The checklist from the last section is now part of every API pull request on our team.
Browse
Design HTTP APIs that are predictable, safe to retry and easy to evolve, with OpenAPI, pagination, errors, auth and webhooks
Created by Lukas Brenner
An API is a promise to the people who use it. Once other teams, mobile apps or customers depend on it, every name, status code and error format becomes hard to change. Good design up front saves months of workarounds later, and it makes your API pleasant to use.
This course is about the design decisions, not a specific framework. We design an API for a small booking platform from scratch, discuss the options at each step and write the result down as an OpenAPI document. The examples use plain HTTP, so they apply whether you build with FastAPI, Express, Go, Spring or anything else.
You have built or consumed a few APIs and want to design them deliberately. Backend developers, tech leads writing API guidelines, and front end or mobile developers who want to give better feedback on the APIs they consume will all benefit.
Backend engineer teaching API design, Python services and testing that catches real bugs
I design and build backend services and APIs, mostly in Python with FastAPI and PostgreSQL. A large part of my job is reviewing API contracts, writing tests and figuring out why something that worked on a laptop fails in production.
My courses are opinionated but honest about trade offs. I show the approach I use, explain the alternatives and point out when the alternative is the better choice for your situation.
I like small, boring, well tested systems. If you finish one of my courses with a habit of writing a failing test before a fix, I consider that a success.
The checklist from the last section is now part of every API pull request on our team.
We adapted the error format and pagination lessons into our internal API standard almost word for word.
We had duplicate orders from mobile retries. The idempotency key design fixed it properly.
I liked that nothing depends on a specific framework. A short code sample per language would have been nice.
Small things like that, plus the 422 versus 400 discussion, made our APIs much more consistent.
Signatures, retries and handling duplicates were all covered. Exactly the pitfalls we hit last year.
Mostly practical, but some sections are discussion heavy. I prefer more hands on exercises.