We are working on a solution built on top of WSO2 APIM
.
Problem Statement:
We want to add custom capability in existing APIM
. Right now if we consume a single api endpoint it gives us meaningful statics some of them are:
- API Usage API
- API Usage per Application
- Top Users per Application
- Resource Usage per Application
But what we need is to store some/all incoming request data into database and extract meaningful information over time.
Example:
Suppose we have a api endpoint like below:
HTTP-Verb: POST
URL: http://localhost:9444/subscriptions/1/create_subscription
Params: name:sample_name, type:sample_type, user_id:12345
What we want?
- It could be WSO2, OpenAM or any other opensource API manager.
- We need to store parameter values e.g.
sample_name
,sample_type
anduser_id
in database.
Observations?
- Looks like WSO Stream Processor can provide this functionality. As it has a solution for HTTP Analytics. But we are not certain to proceed with this option.
- Another possible candidate is to Extend API Manager. But docs doesn't have anything to target what we wanted to do.
- I am not sure but we can use RequestInterceptor?
Anyone has a experience with this kind of problem please let me know.