GuideBeginner

Api Design And Integration

Learn to design the contract that lets one system talk to others: model resources, choose the right verbs and status codes, design requests and responses (pagination, filtering, errors), and — the core of this guide — version and evolve an API without breaking the clients that already depend on it. Everything is built on a single case study from start to finish: the public Catalog and Orders API of Mercado, a marketplace with real endpoints (`GET /v1/products`, `POST /v1/orders`) that get built and tested in Python. You'll design cursor-based pagination that actually runs, idempotency with `Idempotency-Key`, an error contract in `problem+json` format (RFC 9457), JSON Schema validation, and prove with a test how an additive change doesn't break an old consumer while a breaking change does. The guide closes with the judgment to know when REST isn't the answer and gRPC or GraphQL fit better.

64
lessons
8
modules
English · Spanish
available in
Yes
certificate
Free
access
NIEVA

Outcomes

What you'll be able to do

  • Understand an API as a contract others build on top of, and model resources (nouns) instead of actions
  • Apply REST correctly: HTTP verbs and their semantics (idempotent/safe), and the right status codes for each case
  • Design requests and responses: cursor-based pagination (and why it beats offset), filtering, sorting, and date/money formats
  • Build an actionable error contract in `problem+json` (RFC 9457) and make `POST` idempotent with `Idempotency-Key`
  • Version and evolve an API without breaking consumers: distinguish additive changes from breaking ones, and apply the tolerant reader pattern
  • Formalize the contract with OpenAPI and JSON Schema, and validate requests/responses against the schema
  • Judge when REST isn't enough and gRPC (strong contract, streaming) or GraphQL (clients fetch exactly what they need) fit better
  • Design Mercado's Catalog and Orders API end to end: contract, schema, idempotency, and a versioning plan with a proven evolutionary change

Before you start

What you need to bring

It's for you if...

  • Backend devs designing HTTP APIs who want to stop improvising contracts that break on the first change
  • Devs who've built REST endpoints before but never versioned a production API with real consumers
  • Teams evaluating whether REST is enough or parts of their API should move to gRPC or GraphQL
  • Anyone who needs to design pagination, errors, and idempotency with judgment instead of copy-pasting from another project

Requirements and materials

  • Basic Python and basic HTTP (verbs, status codes, JSON)
  • Having built at least one backend endpoint or service, even a simple one
  • No prior experience with OpenAPI, gRPC, or GraphQL required

Content

The syllabus, module by module

Open any of them to see its lessons.

Common questions

What people usually ask

Start whenever you like

Reviews

What students say

These reviews are from enrolled students who completed at least 50% of the course. We moderate reviews only on content grounds (spam, offensive language, personal data), never for being critical or negative.

No approved reviews yet.

Be the first to share your experience!