API Design

Designing interfaces other systems depend on.

4 subjects · 18 topics · 4 areas

Subjects covering this category

4 subjects
  • Subject · Beginner to Advanced

    Designing HTTP APIs that clients can understand, call safely, and keep using as the API changes.

    • HTTP for API Designers
    • Designing the Contract
    • Repeats, Retries and Long Jobs
    14 topics · 132 cardsnot started
  • Subject · Beginner to Advanced

    Turning a product's requirements into a first design for a web system, and knowing what each part is there for.

    • Starting a Design
    • The Parts of a System
    • Moving Data Around
    11 topics · 100 cardsnot started
  • Subject · Intermediate to Advanced

    Building a REST service with Spring Boot: wired to real data, validated, and fast enough to trust in production.

    • Spring Boot Essentials
    • Building REST APIs
    • Data Access
    12 topics · 77 cardsnot started
  • Subject · Beginner to Advanced

    Following a request from an application down through the network layers and back, and naming the layer where a network problem lives.

    • Getting a Packet There
    • Between Two Programs
    • Applications and Debugging
    11 topics · 106 cardsnot started

REST APIs

13 topics
  • API Design

    REST and resource design: naming the things an API exposes and the paths that reach them, with filtering, sorting and actions that are not plain updates.

    Beginner to Advanced11 cards · 7 qnot started

  • API Design

    HTTP methods for APIs: what GET, POST, PUT, PATCH and DELETE promise, and which are safe to repeat.

    Beginner to Intermediate10 cards · 7 qnot started

  • API Design

    API contracts: the fields, types and formats a client and server agree on, written down so machines can check them.

    Beginner to Advanced10 cards · 7 qnot started

  • API Design

    HTTP status codes for APIs: choosing the code that tells a client what happened and what to do next.

    Beginner to Intermediate9 cards · 7 qnot started

  • API Design

    Asynchronous APIs: answering a long job with 202 Accepted and a status to check, and sending signed webhooks a receiver can trust.

    Beginner to Advanced9 cards · 5 qnot started

  • API Design

    Versioning an API: telling breaking changes from safe ones, and retiring an old version without stranding its clients.

    Beginner to Advanced9 cards · 6 qnot started

  • API Design

    REST, GraphQL and gRPC: what each API style exposes, and how to choose one for an integration.

    Beginner to Advanced9 cards · 5 qnot started

  • API Design

    API error responses: one error format a client can branch on, with enough detail to fix the request and nothing an attacker can use.

    Beginner to Intermediate8 cards · 5 qnot started

  • API Design

    Designing an API end to end: from requirements to reviewed endpoints, errors and a contract for one feature.

    Intermediate to Advanced7 cards · 6 qnot started

  • API Design

    Idempotency keys: letting a client retry a payment or an order after a timeout without it happening twice.

    Beginner to Advanced6 cards · 4 qnot started

  • Spring Boot

    Mapping HTTP requests to controller methods: verbs and paths, reading request data, and choosing the response.

    Intermediate to Advanced6 cards · 4 qnot started

  • System Design

    Client-server communication: polling, server-sent events, WebSockets and webhooks, chosen by who sends and how often.

    Beginner to Intermediate10 cards · 5 qnot started

  • System Design

    API pagination with offsets and cursors: returning large results a page at a time without skipping rows or slowing down.

    Beginner to Intermediate8 cards · 5 qnot started

WebSockets

3 topics
  • The OSI Model and Network Protocols

    How WebSocket, server-sent events and WebRTC keep a connection open, who may send on it, and how each one survives a drop.

    Beginner to Advanced10 cards · 6 qnot started

  • System Design

    Client-server communication: polling, server-sent events, WebSockets and webhooks, chosen by who sends and how often.

    Beginner to Intermediate10 cards · 5 qnot started

  • System Design

    System design heuristics: matching a pressure such as read-heavy traffic or global users to the pattern that answers it.

    Intermediate to Advanced7 cards · 5 qnot started

GraphQL

1 topic
  • API Design

    REST, GraphQL and gRPC: what each API style exposes, and how to choose one for an integration.

    Beginner to Advanced9 cards · 5 qnot started

gRPC

1 topic
  • API Design

    REST, GraphQL and gRPC: what each API style exposes, and how to choose one for an integration.

    Beginner to Advanced9 cards · 5 qnot started

In API Design itself

3 topics
  • API Design

    Authenticating API clients: API keys, sessions, bearer tokens, JWTs and mutual TLS, and which one suits each kind of caller.

    Beginner to Advanced12 cards · 8 qnot started

  • API Design

    HTTP caching for APIs: telling clients and CDNs how long to keep a response, and using ETags to skip unchanged downloads and to stop two clients overwriting each other.

    Beginner to Advanced11 cards · 8 qnot started

  • API Design

    Protecting an API: the common API security risks, object-level checks, rate limits a client can act on, and what CORS does and does not do.

    Beginner to Advanced10 cards · 8 qnot started