Hi All

Intention of this mail is to discuss about API product concept and try to
evaluate how we can apply this for API Manager. As of now we can bundle
APIs together into application at API store and use them. But in this
feature we are mainly focus on API publisher side aspect of it(how
publishers can bundle set of APIs and present it to application creator).
Please find the details below and share your thoughts about them.


*Requirement*

As an API provider(creator or publisher), you need to create an API
product. The API product is the mechanism through which your APIs are
bundled and published so that developers can consume them. An API product
is a collection of APIs combined with a predefined policy set presented to
developers as a bundle(in a way they can subscribe to product and use it).

*Proposed Solution*

The API product can also include some information specific to your
business/product for monitoring or analytics. You can create different
products to provide features for different use cases. So instead of just
giving developers a list of APIs, you can bundle specific resources
together to create a product that solves a specific user need. As example
we can consider following use case.

Example:
Let say we have user information API, credit service API, leasing API. And
let say we need to have 2 mobile applications for credit and leasing. Then
we can create 2 API products named credit API product and leasing API
product(both will share user information API). API products are also a good
way to control access to a specific bundle of APIs. For example, you can
bundle APIs that can only be accessed by internal developers, or bundle
APIs that can only be accessed by paying customers. Please see following
diagram to understand this scenario.



​




*Implementation Details.**From Publisher's side.*
>From publisher side we need to let users to create API products like we do
for APIs. To do that we may need to provide user interface similar to API
create. In this API product creation process we collect following
information from product creator.

   - Product Name and product specific meta-data.
   - List of APIs belong to that product and their tiers used for product.
   - Visibility and subscription availability.
   - Tiers and access control related information.
   - Life-cycle management for API product.

*From store side.*
List products same way we list APIs and then let users to subscribe for API
Products. Once we go to subscription users should be able to see apis and
api products belong to application. Also when we go to specific API product
then we should be able to see all APIs belong to that API and selectively
go through them. We will not be able to have single swagger file or wadl
for complete API product as it shares multiple APIs.

*Gateway Side.*
For the throttling we need to do some improvements to throttle API product
level requests. While doing throttling we need to consider number of
requests allocated for API product as well and then consider that for
throttling.

*Key Manager side.*
While validating subscription we can check API level subscription and API
product level subscription both.

Please share your thoughts on this.

Thanks,
sanjeewa.

-- 

*Sanjeewa Malalgoda*
WSO2 Inc.
Mobile : +94713068779

<http://sanjeewamalalgoda.blogspot.com/>blog
:http://sanjeewamalalgoda.blogspot.com/
<http://sanjeewamalalgoda.blogspot.com/>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to