Hi,

There can be situations where we need to host public gateways for public
traffic as well as private gateways for internal traffic. In general, there
can be different gateway environments which serve particular APIs. The
publisher can decide which API should be served by which gateway
environment.

The flow is as follows.


​

1. When creating an API, the publisher can decide the labels for an API.
Labels can be public, private, etc. Users can define labels based on their
use cases. Once the  API is published, an event is published to the topic.
2. Gateways are subscribed to the particular topics at the startup and they
will receive the API publishing event. Gateways are capable of loading APIs
on demand as well as able to load when API is published. Gateways should be
started with a label. For an example, the public gateway should be started
providing an argument at startup with label value public. This is to
identify the environment.
3. When requesting a particular API from the publisher, the gateway should
provide the label value. The publisher will check the available labels in
the API and the gateway only receives the API only if there is a match for
the given label in the API.
4. Key validation.

In Store, there will be a REST API to get the label information which
contains the label name and the URL of the gateway. This is used to display
the gateway URLs in the API store. By default, it will display all the
available environments. There is an extension point which users can use to
restrict showing particular gateway endpoints based on the user who logs
into the API store.

*Note: *These gateway environments are not same as having Dev , QA and Prod
environments of the API Manager deployment. Dev, QA, Prod environments are
called stages in API Manager from C5 onwards. In a particular stage, there
can be different gateway environments.

Please share your thoughts.

Thank you!
-- 
*Pubudu Gunatilaka*
Committer and PMC Member - Apache Stratos
Software Engineer
WSO2, Inc.: http://wso2.com
mobile : +94774078049 <%2B94772207163>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to