{Service 1} API

Method Path Auth? Request Body Response Status codes Notes
GET /api/resource Yes β€” { data: [...] } 200, 401, 500 {Notes}
POST /api/resource Yes { name, ... } { id, name, ... } 201, 400, 401 {Notes}
PUT /api/resource/:id Yes { name, ... } { id, name, ... } 200, 400, 404 {Notes}
DELETE /api/resource/:id Yes β€” { success: true } 200, 404 {Notes}
PATCH /api/resource/:id Yes { field: value } { id, field, ... } 200, 400, 404 {Notes}

API Design Decisions

Decision Choice Rationale Notes
API Style REST GraphQL gRPC WebSocket {Rationale} {Notes}
Authentication {JWT / Session / OAuth2 / API Key} {Rationale} {Notes}
Versioning {URL path / Header / None} {Rationale} {Notes}
Rate limiting {Strategy} {Rationale} {Notes}