Early in my career, I tried to design complete APIs — every edge case, every verb, every status code perfectly defined.
Now? I aim for just enough.
The goal isn’t to describe everything — it’s to make the most common thing easy.
// Before
GET /users/:id/contacts/:contactId/messages/:messageId
// After
GET /messages/:id
Less nesting. Less thought. Fewer docs to maintain.
A clean API isn’t about limiting power — it’s about guiding use.
Clarity scales better than coverage.
The best API is one you don’t have to explain twice.