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.