As I said, I’m brand new to API docs, and I’ve only been at this job about two months, so I don’t know if this is a gap in my understanding, or a problem with the way our code is designed. At previous jobs I’ve worked on products that used a tiered architecture. At this company, we’re using microservices which are new to me (I’m currently reading my way through Building Microservices (O’Reilly) to help me better understand our architecture). Here’s what I can tell you, we’ve got something like 140 code repositories (and the company we just acquired has a similar number), so I’m assuming one per service? But I could be wrong about that. At previous jobs we’ve either either had all the code for a product in a single repo, or had only a handful of repos (for example, for back-end code, one for UI/presentation layer code, etc.).
I haven’t had a chance to look at all of the repos, but it doesn’t seem like all of them have APIs associated with them (or at least not that I’ve been told need to be documented or have any doc in the wiki). I know services need to talk to each other, thus there should be an API for each of those services, so your guess is as good as mine as to how we’ve actually chunked up our code. I’ve got a spreadsheet that lists six major functional areas, which as far as I can tell map to six particular code repos/services. So again, not sure if all those other repos are actual services, and if they are, how they’re talking to each other or where the actual boundaries are for each service. The spreadsheet lists something like 200 APIs (or possibly just individual endpoints, as it lists each CRUD operation as a separate item). I had a white board talk from our architect on my second day, which went completely over my head, where he sketched out the system for me. I need to ask for a repeat performance now that I’ve learned more about our system and I can ask better questions.
From what I can tell from the system diagram I found (which may be out of date) we deploy on at least 8 different databases, and twenty different hosts. So again, not a one-to-one alignment of host to db to service. Five of those hosts have an "https://api.[servicename] URL associated with them. If you’re wondering about where that API for that sixth functional area is, it’s for reporting so I’m assuming that why it doesn’t have its own separate host and DB.
As far as how data driven they are? Some contain quite a bit of data for rather large records (40 - 50 discrete pieces of data in a single API call), others are only passing small bits of data (for a user record we have separate APIs for address, phone, and email).
Not sure if that answers your questions or not?