Blog / Technical / API Design

API Design

APIs are contracts between systems. A well-designed API is intuitive, stable, secure, and self-documenting. A poorly designed API is a maintenance burden that breaks clients on every change. API design decisions are...

large-scale-software-engineeringdocs

APIs are contracts between systems. A well-designed API is intuitive, stable, secure, and self-documenting. A poorly designed API is a maintenance burden that breaks clients on every change. API design decisions are among the hardest to reverse because they affect all existing consumers.

Overview

mindmap root((API Design)) RESTful Design Resource modeling HTTP verbs Status codes HATEOAS Versioning Pagination API Security Authentication Authorization Rate limiting Input validation TLS CORS API Documentation OpenAPI Specification AsyncAPI Developer experience SDKs and examples GraphQL Design Schema design Query optimization N plus 1 problem Subscriptions Federation

Topics in This Section

File Topic Key Concepts
01_restful_design.md RESTful Design Resources, HTTP verbs, versioning, pagination
02_api_security.md API Security AuthN/AuthZ, rate limiting, CORS
03_api_documentation.md API Documentation OpenAPI, AsyncAPI, developer experience
04_graphql_design.md GraphQL Design Schema, N+1 problem, federation