WSO2 API Manager 3.0.0 — API Product feature
APP developers consume the APIs provided by the API provider to develop the application. Application may consume different resources from different APIs to implement specific functionality. When resources are scattered in different APIs, it is hard to discover the relevant resources(or APIs), at the same time need to manage different API endpoints to consume them.
As an example, let’s take the use case of e-wallet application development. Ewallet application should provide the following features.
- Link end user’s the bank account to end user’s e-wallet
- Transfer money from bank account to linked e-wallet
- Transfer money from linked e-wallet to bank account
- Unlink the bank account from e-wallet
There are secured APIs/Services exposed from bank for e-wallet developer to consume and develop the app. But these APIs are coming from different microservices as depicted in the below diagram. API 1 provides the resources to link and unlink an e-wallet and API 2 provides the money transaction from bank account to e-wallet and vice versa.

Now the issue is app developers have to discover above two APIs to implement the app. Also, need to manage two API endpoints in the application side.
WSO2 APIM 3.0.0 has introduced the API Product feature to eliminate the hassle that app developers face in this kind of situation. API product helps to bundle the mapping resources from different APIs and provide a single interface to app developers as depicted in the below diagram. Now app developer has to just subscribe to the single API product and use the API resources which eventually points to different back ends.

How to create an API Product.
In this section, let’s go see how to create an API product for the above mentioned scenario.
- Login to publisher and Create API 1 (link-ewallet) and Crate API 2 (ewallet-transfer) with respective resources.
API 1

API 2

2. Now go to the API Product section in the publisher and create new API Product. Fill the required fields and click next.

3. Now the screen will display the available APIs in the left column and the middle column will display the resources available for particular API. This allows us to select the relevant resources from different APIs and add them to API product. Selected resources will be displayed in the right column

4. Now click publish. This will create the API product and switch to the next screen, where you can see configuration options in the left panel. There you can configure different service plan, authentication mechanism etc.
This is because API Product also an API artifact which bundles resources from other APIs and expose as a single API.

5. Now if you go to the developer portal, created API product will appear as an API with resources bundled from other APIs. Now app developer can simply subscribe to this API and consume all the resources.

