API & Interface Design
Principles and patterns for designing APIs that are consistent, discoverable, versioned, and easy for consumers to use correctly.
REST API Design
Resource-oriented HTTP interfaces — principles, conventions, and anti-patterns for clean REST APIs.
GraphQL Architecture
Client-driven query composition for flexible retrieval without multiple round trips.
gRPC Architecture
High-performance RPC with strong typing using Protocol Buffers for service-to-service communication.
API Versioning
Evolving interfaces without breaking existing consumers — URL versioning, headers, and content negotiation.
API Gateway Pattern
Central entry point for routing, policy enforcement, auth, and rate limiting across services.
Backend-for-Frontend (BFF)
API tailored per client type — web, mobile, and partner clients each get their own shape.
API Authentication
Verifying identity at the API boundary — API keys, OAuth2, mTLS, and JWT validation.
API Authorization
Determining what an authenticated identity can do — RBAC, ABAC, and OPA at the API layer.
OpenAPI Specification
Contract-first API design with OpenAPI/Swagger for governance, code generation, and documentation.
HATEOAS
Hypermedia as the engine of application state — embedding navigation in REST responses.
API Pagination
Offset, cursor, keyset, and page-token pagination for large collection endpoints.
API Filtering & Sorting
Standard query controls for collection endpoints — filter, sort, field selection, and search.
API Rate Limiting
Protecting API capacity with per-key, per-tenant, and per-endpoint throttling.
Contract Testing
Verifying service compatibility with consumer-driven contracts using Pact or similar frameworks.