Importing a Group of APIs from WSO2 API Manager¶
Note
This is only applicable if you wish to import your APIs from WSO2 API Manager. Follow guidelines on configuring the API Manager before following the below steps.
It is possible to create a Microgateway distribution for a group of APIs that exist in WSO2 API Manager, by simply importing the group of APIs based on a preferred Microgateway label, which has been assigned to the group of APIs in WSO2 API Manager. Similarly, you can also use a Microgateway label to import a single published API from WSO2 API Manager as well if required.
Follow the instructions below to create a Microgateway distribution for a group of APIs that you have imported from WSO2 API Manager.
Step 1 - Follow the installation prerequisites¶
Make sure to carry out all the installation prerequisites.
Step 2 - Assign an API to an API Microgateway¶
Create and attach a Microgateway to an API. Follow the instructions in the Grouping APIs with Microgateway Labels on the WSO2 API Manager documentation.
Step 3 - Generate a Microgateway project¶
Follow the instructions below to generate a Microgateway project for a group of APIs that corresponds to a specific Microgateway label.
-
Initialize an API Microgateway project (e.g., marketing_project). Navigate to a preferred folder where you want to create the Microgateway project. Thereafter, run the following command.
micro-gw init <project-name>
micro-gw init marketing_project
Project 'marketing_project' is initialized successfully.
-
Import the APIs, which are published in WSO2 API Manager, that correspond to a specific Microgateway label.
micro-gw import -l <label> <project-name>
micro-gw import -l MARKETING_STORE marketing_project
WSO2 API Microgateway Toolkit prompts for the following. Enter Username: admin Enter Password for admin: Enter APIM base URL [https://localhost:9443]: You are using REST version - v1.2 and dynamic client registration version - v0.17 of API Manager. (If you want to change this, go to <MGW-TK_HOME>/conf/toolkit-config.toml) Enter Trust store location: [lib/platform/bre/security/ballerinaTruststore.p12] Enter Trust store password: [ use default? ] ID for API 30e623704c5c5479b7c0d9ab78e965df02c1610401e37cbd557e6353e3191c76 - Username and Password - Enter your user credentials. The username and password should correspond to a valid user in WSO2 API Manager - APIM base URL - This is the WSO2 API Manager URL. If you want to use the default value, click enter. - Trust store location and password of WSO2 API Microgateway Toolkit - If you want to use the default value, click enter.
After the APIs are imported, you can find the auto-generated OpenAPI definitions in the
<MGW-project>/gen/<OpenAPI_definition-file-name>.json
directory of the project (e.g.,/marketing_project/gen/30e623704c5c5479b7c0d9ab78e965df02c1610401e37cbd557e6353e3191c76swagger.json
)
Step 4 - Build the Microgateway¶
Build the WSO2 API Microgateway project (e.g.,marketing_project).
-
Navigate to the
<MGW_HOME>/bin
directory and run the following command.micro-gw build <project-name>
micro-gw build marketing_project
Compiling source wso2/marketing_project:3.2.0 Creating balos target/balo/marketing_project-2020r1-java8-3.2.0.balo Running Tests wso2/marketing_project:3.2.0 No tests found Generating executables target/bin/marketing_project.jar BUILD SUCCESSFUL Target: /Users/Downloads/TestProj/marketing_project/target/marketing_project.jar
This creates a jar file (
/marketing_project/target/marketing_project.jar
) that you can use to expose the group of APIs via WSO2 API Microgateway.
Step 5 - Run the Microgateway¶
Start WSO2 API Microgateway.
gateway <path-to-MGW-jar-file>
gateway /Users/kim/Downloads/TestProj/marketing_project/target/marketing_project.jar
WSO2 API Microgateway starts for the APIs, which are grouped with the MARKETING_STORE
label.
ballerina: HTTP access log enabled
[ballerina/http] started HTTPS/WSS endpoint 0.0.0.0:9096
[ballerina/http] started HTTPS/WSS endpoint 0.0.0.0:9095
[ballerina/http] started HTTP/WS endpoint 0.0.0.0:9090
2019-05-30 18:09:32,540 INFO [wso2/gateway] - HTTPS listener is active on port 9095
2019-05-30 18:09:32,541 INFO [wso2/gateway] - HTTP listener is active on port 9090
Top