While things often have parents and children, they also very frequently stand alone. Also, sometimes you don't want to leak private data (org id's) in public content (a blog post)
What I recommend is follow the resource standards from something like jsonapi, and organize your routes like this:
/organizations/:organization_id
/organizations/:organization_id/blogs -> returns a list of links to blogs (maybe including the very most basic data, like blog title and byline)
/blogs/:blog_id -> one blog, has a link to organization, for going "up" the hirearchy, but only returned for authenticated users (if that's necessary in your use case)
/blogs/:blog_id/sections -> links to list of sections
/blogs/:blog_id/threads -> links to list of threads
/threads/:thred_id -> one thread, but links to parents as above
/sections/:section_id -> same as threads
you get the idea.
I've done it this way and I feel like it ends up being very easy to wrap my head around where things are, and how they relate to one another.
One of my favorite example APIs is stripe. the layout makes sense, routes make sense, and it's a very complex system which becomes easy to understand and the routes aren't insanity, if you are looking for a very public example
Simplecast (A SiriusXM Company) | Remote (USA) | Full-Time | Senior Back End Engineer & Senior Front End Engineer
Every year, millions of new listeners are being exposed to podcasting, with hundreds of thousands of new creators meeting this increased listener demand with new content. Individual audio content creators are looking for better tools to immerse their audience in a story.
We're growing our product development team to shape the future of podcasting by empowering audio creators with the resources they need to connect their shows with a world of listeners.