Tips and Tricks of API Gateway

How API Gateway can co-exist with IS (pub/sub), Mediator and CloudStreams in a single environment?

Software AG product suite from 9.12 version includes a new product called API Gateway, which itself runs on top of Integration Server + OSGi. Unlike other layered products of IS, API Gateway is not designed to be installed along with Mediator and CloudStreams. Also, this requires a special license key for IS, which DISABLES some basic capabilities of IS – notably pub/sub. This makes API Gateway NOT co-exist with IS (pub/sub), Mediator and Cloud Streams under a single environment (same or different installation directory). 

This page provides information for running normal Integration Server and API Gateway on the same machine, out of the same suite folder. This is not part of the official documentation since it’s not a typical production configuration.  It might be a relatively typical development configuration, though. To get the API Gateway and other Software AG products on a single installation we have to do the below configuration steps:

1. Install Integration Server with API Gateway

Install Software AG suite including all the integration Server layered products. This also includes API Gateway in it.  While installing the suite, use Integration Server normal License key (Do not use IS license key available for API Gateway). This installation will auto-enable all the packages including API Gateway which are installed under Integration Server. Install the latest fixes if any for IS and API Gateway.

2. Disable API Gateway Package and its runtime engines in default Integration Server instance

When default IS starts, it starts two other runtime engines (Event Data Store aka Elastic Search, and Kibana) required by API Gateway.

a. Disable API Gateway web-app port

As we have installed Integration Server with API Gateway, the WebApp-Port of API Gateway will be started by default when the Integration Server is started. To disable this, replace “enabled = true” with “enabled = false” in both properties files listed below

  • <InstallDir>\profiles\IS_default\configuration\com.softwareag.platform.config.propsloader\ and
  • <InstallDir>\profiles\IS_default\configuration\com.softwareag.platform.config.propsloader\

b. Disable Kibana autostart

To disable Kibana auto startup, we need to replace ‘apigw.kibana.autostart=true’ to ‘apigw.kibana.autostart=false’ in file which is available at <InstallDir>\profiles\IS_default\apigateway\config

c. Stop Event Data Store engine

Now start Integration Server from default instance. When Integration Server starts with WmAPIGateway package, the package starts the EventDataStore by default. Disable the WmAPIGateway package to stop the EventDataStore. The WmAPIGateway package can be disabled from the Integration Server Administrator page. To do this,

  • Login to Integration Server as an Administrator

  • Navigate to Packages Management page

  • Disable WmAPIGateway package

3. Create a new Integration Server instance with the API Gateway license file

To use API Gateway in the same environment we have to create a new instance on Integration Server. This instance will have only WmAPIGateway package on it. 

  a. Create Integration Server instance

There are multiple ways to create a new instance for Integration Server.

  • Integration Server new instance creation using command line instructions are given below.

Run is_instance.bat file from <InstallDir>\Gateway\IntegrationServer\instances with below parameters. We need to provide the API Gateway License file while creating this new instance.

is_instance.bat create -Dlicense.file="<API Gateway License file location>" -Dprimary.port=<NewPrimaryPort>

-Ddb.alias=<DatabaseName> -Ddb.type=SQLSERVER -Ddb.password=<Database Password> -Ddb.username=<Database Username> -Ddb.url="<Database URL>"

  • The new instance can also be created using Command Central.

b. Copy API Gateway package to APIGateway instance

is_instance.bat update -Dpackage.list=WmAPIGateway

c. Update uiconfiguration properties:

For the newly created Integration Server instance update the base url with new instance port. To do this replace“<localhost>:5555” to “<localhost>:<NewPrimaryPort>” in file which is available at <InstallDir>\profiles\IS_APIGateway\apigateway\config

Now both the instances of Integration Server can be started and the instances will be running with different primary ports on the same environment. The API Gateway server will be running on APIGateway instance of IS and can be accessible on URL http://<hostname>:9072/apigatewayui/

Note: Update uiconfiguration properties step is not required starting version 10.