Posted by ItsNewbie 2 years ago
@Korn @PrintsKaspian @Mytherceria
Someone, please hear our pleas.
Numerous members of the Albion community have spent countless hours developing Web Sites and Discord bots that utilise the unofficial API to provide services to this community.
For the last 3 weeks you guys have made changes that break our integrations, without any sort of notice or information on the changes, leaving us to guess. Two weeks ago you appeared to update the caching servers so that certain headers were required. We implemented this and our calls to the API started working again instead of returning stale data.
Last week you made another change, which resulted in our calls getting stale data again. Even though we had Head Cache calls in our requests that should have negated this. For me, I removed the header changes I put in the week before and my calls started working again. This defied logic, but hey, it worked.
However, a day and a half ago, you made another change or have an error that you havent resolved yet, because the API is not returning all events that happen in the world. Now I know its the API because on your site's kill boards, when I search my guild and look at the recent kill events, they are a day and a half old. Nothing new has come through since.
I implore you to official or at least semi officially start communicating with the developer community that enhances the Albion Online playing experience for many. I would prefer to spend my time playing this game than playing whack a mole trying to understand why my kill bot has stopped working, when I havent made any code changes and therefore know something has changed on your end.
Also, if you engaged with us, we might be able to provide insight into how we are consuming your unoffical API and therfore assist you in making changes that ease the load on your end.
In fact heres a really simple one that I know would reduce the number of times I have to call your API.
If I want to track a guilds kill and death events I have to do the following:
1. For kills, its really easy, I just call this end point with a guild Id: gameinfo.albiononline.com/api/…et=0&sort=recent&guildId=
<insert guild id here>
2. However, theres no way to filter on death events for guild members and therefore I have to poll your API every minute or less to try and capture the death events for my guild members. Putting a simple filter that shows death events or combine kill and death events when a guildId is present would significantly reduce the calls I have to make, thus reducing the load on your servers. Doing the same for the player end points would also make a significant improvement.
Another idea I think you should implement is a Identity Services and lock the API down to developers that you issue tokens too, so that if one becomes a bad actor and uses the API in a fashion that goes against the TOS, you can revoke their token and stop them calling the API. This I know wont be popular with some, but from a developer perspective, it puts the control back in your hands, which Im sure you know.
Anyway, you get the idea, there are many developers that would love just a little communication so that we dont have to chase our tails every time you make a change and upset how the unoffical API works.
Or, implement authentication and lock the API off to us all, if you feel we are not providing a valuable community service to the AO community. But please, at least respect the time we put into our development efforts and either help us out or shut us down.
Posted by Talion 2 years ago (Source)
Thanks for bringing up your concerns about the performance of the API. Considering that this API was always meant to be for internal use, and thus entirely undocumented, the sheer number of tools that were developed and serve community purposes is astounding.
This widespread acceptance and distribution of tools latching onto that API is, at the moment, its downfall. The increase in player numbers, paired with the increase in numbers of tools, brought the infrastructure behind this API pretty much down to its knees. That doesn’t make you happy because your tools don’t work, it doesn’t make us happy, because our killboard doesn’t work. We’re currently investigating which attempts at improving the situation are the ones most likely to succeed. Throwing even more hardware at the situation is obviously the first step, will likely only buy some time - and is also something that’s not an instant implementation. However, we’re on it.
Going beyond that, we will have to look at the fundamental architecture of the API itself to enable it to handle all the data from the hundreds of thousands of people playing the game, as well as the tools that our community, that you guys, develop and maintain.