Hi All,
We are working on releasing a ballerina based micro gateway with APIM
2.5.0. We are providing are Cli Tool which allow users to generate
ballerina executables and runtime archives based on provided configurations.
High Level Architecture
[image: image.png]
*Micro gateway distribution structure*
micro-gw
├── bin
│ ├── micro-gw.bat
│ └── micro-gw.sh
├── lib
│ └── ballerina-0.970.0
├── temp
│ └── path.txt
└── templates
├── api.mustache
├── config.mustache
└── gateway_config.mustache
└── policy_template.mustache
*Core Cli Commands*
- *micro-gw setup/init (with inputs username, label name and password(*
optional
*)) *
- This command will create basic project structure. Initially
consumer key and secret will be generated by taking user inputs and
retrieve the api definitions of given label type in the argument. If user
provides new label, there will be new directory structure for that label
will be created under projects directory.
- *projects* directory contains directories for each label and
ballerina source file will be created for each API under particular label
- *config.yaml* contains configurations related to publisher, key
manager connections, consumer key and secret which are common across all
labels
- *gateway_config.yaml* contains configurations specific to labels
such as docker/kubernetes
* Generated Project Structure*
micro-gw-resources
├── conf
│ └── config.yaml
└── projects (folder name is same as label name)
├── accounts
│ ├── src
│ │ ├── companyAccounts_v1.0.0.bal
│ │ └── salesforce_v1.0.0.bal
│ └── target
│ ├── accounts.balx
│ └── accounts.zip
├── finance
│ ├── src
│ │ ├── invoices_v2.0.0.bal
│ │ └── payments_v2.1.0.bal
│ └── target
│ ├── finance.balx
│ └── finance.zip
├── gateway-config
│ └── gateway-config.yaml
└── sales
├── src
│ ├── customers_v3.0.0.bal
│ └── leads_v4.0.0.bal
└── target
├── sales.balx
└── sales.zip
- *micro-gw build (with inputs label name)*
- This command build single balx out of all APIs belongs to given
label. If docker/kubernetes configurations specified, then archive
will be generated. This archive will embeds bre, generated balx which
someone can take and run without configuring anything.
- This command also outputs APIs which have updated and commands
which are available to run in target folder
- *micro-gw run (with label name)*
- This command will use to run the balx generated for given label.
Please share your suggestions and improvements.
Thanks,
Harsha
--
Harsha Kumara
Associate Technical Lead, WSO2 Inc.
Mobile: +94775505618
Blog:harshcreationz.blogspot.com
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture