API Design and Versioning
Design APIs people can rely on: resources, HTTP semantics, errors, pagination, idempotency, security, versioning, deprecation and governance, tested with a real running API.
Syllabus
Principles of Good API Design
- What Makes an API Good
- Resources and URLs
- HTTP Methods and Their Guarantees
- REST, GraphQL, gRPC and Webhooks: Choosing a Style
Requests, Responses and Errors
- Choosing Status Codes
- Error Responses: Problem Details
- Pagination: Offset vs Cursor
- Filtering, Sorting and Field Selection
Reliability and Performance
- Idempotency Keys
- Caching and Conditional Requests (ETag)
- Rate Limiting and Quotas
- Long-Running Operations and Bulk Requests
Security and Trust
- Authentication and Authorisation
- Object-Level Authorisation and Data Exposure
- Webhooks: Signing and Verifying
Versioning and Evolution
- What Counts as a Breaking Change
- Versioning Strategies
- Content Negotiation and the Accept Header
- Running v1 and v2 Side by Side
Deprecation and Migration
- Deprecation and Sunset Headers
- Timelines, Communication and Usage Tracking
- Compatibility Layers and Gradual Migration