
In the recent updates to the client, we made sure to include all the endpoints and to stabilize the client as much as possible.
I've received some great feedback and saw a lot of pawesome projects being developed using the WarEraProjects API Client.
The client provides an easy way for TypeScript developers to communicate with the public WarEra Endpoints.
There were also conventional functionality implemented that does auto pagination (gets the next cursor and calls it), error handling, easily find the endpoints, and a lot more.
To the point where you can write a few lines to get everything your heart desires.
Note, this is not suggestions on opening up Official API Endpoints, but rather on how the API Client can be improved.
These are some of the suggestions which I have received and thought about:
The current implementation takes 60 seconds, divide it into 100/200/500 ticks, and sends a batch of requests each tick.
The suggestion is to implement a "backoff" strategy, either a eager exponential or linear backoff.
Currently once a request is sent, it does not allow to be aborted.
Either it finishes the call or you stop the server.
The suggestion is to implement functionality allowing the developer to abort an operation before completion.
Using https://app.warera.io/user/695709f595a7333b36597d44's Gateway as an optional cache, we can reduce calls to the official API server, meaning that extracting data can be a lot faster!
Endpoints such as transactions are stored on the server, meaning that you can call more requests per minute fetching the data you need.
For endpoints that do not work with the gateway, such as the party endpoints, calls will be made to the server as per usual.
Determining which endpoints are valid, will be dynamic at first, and performance will be improved as the session continues running.
Feel free to read up more on his Gateway at: https://app.warera.io/article/69ffa41af9c39aa755ef4015
You know what sucks? Creating your own singleton of the client for your application, and having to manage the access and overhead functions to use it.
The idea here is that the package will provide you with a singleton, allowing you to call multiple clients, based on unique keys.
A new function will be created called initClientAPI, allowing developers to easily call it in any file, without needing to import extra files.
With the singleton class, we will be able to return status codes from the client, based on what resources are available:
0 - All services are available
1 - Only Gateway service is available
2 - Only WarEra API service is available
3 - No service is available
A hook function will be available, where the client prompts the servers once a minute, allowing integration with client sessions.
This could allow developers to monitor the server statuses and adapt around the available resources.
Note: When a status 1 is present, the client will stop any requests that is not valid on the Gateway server.
This one is a bit controversial, but I am willing to make it public if the above suggestions are implemented.
Last month I found a way to fetch 250K transaction (Theoretical limit) per minute, you can probably guess why this one is a bit controversial.
This algorithm will be implemented with any endpoint containing a cursor and will only be available when calls to the gateway are made.

Hyperlinks: