Start here. This is the direct spoken answer to practice first.
Overview
Routers scale best when they express cohesive API features rather than become arbitrary folders of decorators.
I group path operations into APIRouter modules around a cohesive feature or public resource, then include those routers in the application composition root. A router can own a prefix, tags, shared dependencies, and documented responses while each endpoint delegates real work to application services. This keeps the main app focused on startup, cross-cutting middleware, and router composition. It also avoids one routes file growing into a mixture of unrelated contracts and business logic.