API Design for Microservices
Introduction
API Design Principles
REST Fundamentals
Resource Naming
# β
Good: Nouns for resources, plural forms
GET /users # List users
GET /users/{id} # Get specific user
POST /users # Create user
PUT /users/{id} # Replace user
PATCH /users/{id} # Partial update
DELETE /users/{id} # Delete user
# β
Good: Nested resources for relationships
GET /users/{id}/orders # User's orders
GET /orders/{id}/items # Order's items
POST /users/{id}/addresses # Add address to user
# β Bad: Verbs in URLs (RPC-style)
POST /getUser
POST /createUser
POST /deleteUser
GET /fetchAllOrdersHTTP Methods and Status Codes
Status Code Reference
Code
Meaning
When to Use
Request and Response Design
Consistent Response Format
Error Handling
API Versioning Strategies
URL Path Versioning
Header-Based Versioning
Versioning Best Practices
Contract-First Design with OpenAPI
Defining the Contract First
Implementing from Contract
Consumer-Driven Contract Testing
API Documentation
Practical Exercise
Exercise: Design an Order API
Key Takeaways
What's Next?
Last updated