Hi Rhox.
First let me say I understand your frustration and I agree it does seems over complicated at first, but I’ll share my perspective as a developer who is always working with APIs both developing and consuming them.
That is just not true. There is always a reason for big changes like that. I can’t tell exactly the reason Blizzard developers had to do this. What I can do is enumerate some of the most common reasons.
1. Maintainability
It is a lot easier to introduce changes on well written and properly segmented API. This leads to the next item: stability.
2. Stability
A modular API allows new features to be introduced on new endpoints instead of modifying already existing ones, this means you are less likely to break something that was working before just to add a few more fields to response payload.
Lets say when Shadowlands comes out items will have a new trait system and it requires more information to be loaded on the back-end of the API. What options do you have ?
- Add a few items that will always return null for older existing items.
There is nothing wrong with that, but sometimes it is hard to cover all kinds of items from previous expansions so there is a risk to break something that used to work before. - Add a new endpoint just for retrieving trait information.
In this case the new endpoint won’t affect the old one and if there is a bug only apps consuming the new endpoint will be affected instead of all other community created applications.
3. Dependencies
Sometimes you create separate endpoints just for integrating different system and micro services into a single API.
Lets say the realm list is acquired from a database while the actual status are obtained from an internal API. Should a defect on one of those services affected all responses from the API ?
4. Standards and Design patterns
When you work with a large number of teams and co-workers it is highly recommended to have a single standard to rule how you structure your code. This helps preventing code smells, variable performance across the services, and so on.
Sometimes it seems some endpoints could be joined into just one, but by doing so you would nod comply to some rules.
5. Many more
There are lots of reasons for changes like this, some of them might even depend on the programming language and infrastructure they are using.
I’m sorry for the long text but a lot of people seems to have the same feeling about the new endpoints so this post might help a little. All I want is to show is how some things are not always as simple as it seems at first.
Keep in mind Blizzard is one f the largest game publishers, a LOT of awesome applications and people use the API every day. Whatever their real reasons were to make those changes most likely is an effort to make it easier for them to keep delivering new data faster and minimizing the risk of the API letting us down due to technical problems.
Also keep in mind the API allows for 100 call per second, you can most likely fetch all realms in less than 3 sec if your code is well written using asynchronous calls. If you need advice on how to implement such things try asking around over the Community Discord Server
More important Blizzard developers are awesome and they do listen to the API community as you can see in this thread. Just make sure to carefully explain why some chances are needed and - when possible - propose solutions.