Microgateway: A lightweight Node.js based API gateway
Switch branches/tags
Clone or download
Latest commit 5e81c9b Dec 12, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
cli better err handling Dec 12, 2018
config fix pidPath on windows Apr 7, 2018
docs docs link Apr 15, 2016
edge Revert "Update the edgemicro-auth proxy." Mar 27, 2017
kubernetes target self signed cert sample Dec 12, 2018
lib Updating reload of config to use port env variable. Jan 26, 2017
plugins docs change Apr 6, 2016
tests-cluster test Apr 13, 2016
tests Fixing tests, and adapting interfaces to account for encrypted KVM. Mar 31, 2017
.eslintrc add eslintrc Jul 6, 2018
.gitignore Version bump Jan 13, 2017
.jshintrc add jshint Jul 6, 2018
.npmignore change repo to apigee-internal Jun 9, 2018
.travis.yml update travis Jun 9, 2018
AUTHORS use forever-monitor to autostart MG Sep 25, 2017
LICENSE move files to new structure Mar 31, 2016
README.md Updates to README. Nov 5, 2016
app.js revert stackdriver changes Oct 2, 2018
app.yaml add support for stackdriver Sep 30, 2018
forever.js add support for forever-monitor with edgemicro cli Oct 1, 2017
forever.json use forever-monitor to autostart MG Sep 25, 2017
index.js exportable func Apr 15, 2016
manifest.yml support for cloud foundry May 19, 2017
micro-flow.png add docs Mar 15, 2016
microgateway.png add docs Mar 15, 2016
npm-shrinkwrap.json Version bump Dec 12, 2018
package.json Version bump Dec 12, 2018
release-package.sh add remove line May 25, 2016
stackdriver-config.json add stackdriver config Sep 30, 2018
stop.js add stop script Jun 23, 2017


Apigee Microgateway

Note: Description and code apply to Microgateway v2.x It's not compatible with v1.x series of Microgateway.

Build Status

The Apigee Microgateway is a lightweight API management proxy that routes requests and responses between API consumers and API providers. As requests are routed the microgateway introduces an eventing model that is based on the concept of http middleware. You can add custom plugins to the http router via the plugins directory. You can also change the code to explicitly load plugins via the gateway.addPlugin method. For more information about plugins see https://github.com/apigee/microgateway-plugins. For more information on how to use the producet see the product documentation


The Microgateway is composed of 3 components

  • microgateway-core: a lightweight core server that forwards requests and responses between northbound and southbound endpoints. Core also contains an event model that will call each plugin.
  • microgateway-config: a config module that allows a user to pull down and load yaml configs from Apigee Edge
  • microgateway-plugins: a file system reference to a collection of directories that allow a user to extend the microgateway.

It also provides a CLI that an admin uses to wire/configure an instance of Microgateway with their Edge (Cloud or On-Premises) org as well as start Microgateway. Below is the workflow of the cli. In order to load custom plugins you must load your plugin in the plugins directory. The plugins directory is configured in the default.yaml or in the specified config directory.


Official Microgateway Docs

The official docs for Microgateway can be found on the Apigee website.

Get support and help

The Apigee community is the best place to ask questions, suggest features, and learn best practices with Microgateway.

Filing Issues

For filing issues please follow the following steps, and file the issue here.

  • An issue should have a clear concise title to indicate the problem
  • Reproduction steps should be included to verify what the issue is
  • Including a relevant Apigee Community post to ensure that fix information is propogated into the community.

Guidelines for Contribution

Pull requests to microgateway repos are gladly accepted. However, to make it easier on maintainers reviewing requests we kindly ask that you include the following with each pull request.

  • Title should be clear and concise as to what is in the Pull Request
  • Please include some unit tests with your PR.
  • If it is a feature addition please include a use case, and how to use the feature.
  • If it is a bug fix please include reproduction steps for the bug, or link to an issue with reproduction steps.
  • Ensure your PR is compatible with Node.js as far back as 4.5.X
  • Follow our general style of coding. Taking advantage of the latest ES6 features.