I explain my use case. We are developing a web application to show an analytics dashboard for our customers. The information show has to do with KPIs and metrics extracted through an ETL process from their databases.
Due to an architectural decission we want our web application to access the backend only through web services, so there is a clear separation between front-end and back-end. Thus we need a REST API that returns the desired data when we send a request.
For example, suppose our fact table is about employee salaries and we want to show a graph with the average employee salaries year on year aggregated by employee category. We would send a request like GET to http://api.example.com/salaries?group-by=year&group-by=employee-category&operation=average
. It should return the requested data in XML or JSON format, something like the example below.
We have thought about using Qlik or Power BI, but it seems their APIs are Javascript APIs that must be executed on the client side, and the only REST APIs they have are for management.
Do you know a BI software engine that offers this kind of REST API out of the box?
Example response:
[
{
"year":2012,
"salaries":[
{
"category":"rookie",
"salary":30000
},
{
"category":"senior",
"salary":45000
}
]
},
{
"year":2013,
"salaries":[
{
"category":"rookie",
"salary":35000
},
{
"category":"senior",
"salary":47000
}
]
}
]
mongodb
there are http interfaces, and both python and java REST API generators for it. For MySQL or MariaDB there are quite a few available there as well.mongodb
andMySQL
are database backends, the question is about BI engines. Of course, the BI engine will access some kind of database backend, but the question is about a REST API attached to the BI engine, not the database.group-by
. What would, for instance, PHP return for$_GET[‘group-by’]
? And you would you know if both year & employee category had been selected? I suggest eithergroup-by=year|employee-category
orgroup-by-time=year& group-by-category=True
, or some such.