Description

IBM API Connection is an application programming interface (API) management platform that uses Loopback to create, assemble, and manage web APIs. The IBM API Connection plug-in provides steps to publish API Definitions and Loopback Apps to an API Connect server. This plug-in communicates to API Connect through the use of the API command-line toolkit.

Quick Info

Product
HCL Launch
Type
plugin
Compatibility
HCL Launch version 7.0.0 or later
Created by
HCL Software
Website
Version Name Action

7.1022553

launch-apiconnect-7.1022553.zip

launch-apiconnect-7.1022553.zip

7.1022553


Summary

The API Connect plugin includes steps that publish API definitions, products, and Loopback apps in IBM API Connect. The plugin communicates with API Connect using the apiconnect contained in the apic command line toolkit.

This plugin includes one or more steps, click Steps for step details and properties.

Compatibility

This plugin requires HCL Launch version 7.0.0 or later.

This plugin is compatible with agents running on operating systems that are supported by both HCL Launch and the apiconnect (apic) command line toolkit. This plugin does not support agents running on z/OS.

This plugin supports apic v2.0.18 and higher. Authentication issues exist within the apic toolkit. Click Troubleshooting for a workaround.

Installation

See Installing plugins in HCL Launch for installing and removing plugins.

History

The following table describes the changes made in each plugin version.

Plugin history details
Version Description
7 Minor enhancements

Installation

See Installing plugins in HCL Launch for installing and removing plugins.

History

The following table describes the changes made in each plugin version.

Plugin history details
Version Description
7 Minor enhancements

Usage

To use the plugin, the apiconnect (apic) command line toolkit must be installed. For installation information, see Installing the toolkit topic in the product documentation.

Step palette

To access this plugin in the palette, click IBM API Management > IBM API Connect.

To understand how to use the API Connect plugin this topic uses two component templates that are available. The two templates are located in a GitHub repository under IBM API Connect/Component.

  • Publish Loopback Application
  • Release API Product Definitions from Drafts

The API Connect templates provide a starting point for understanding the IBM API Connect plugin. The templates use the online version of BlueMix and requires a valid BlueMix account. See Build for free on IBM Cloud website to create a trial BlueMix account account. The templates requires some prerequisite steps to publish your first definition or project.

Publish Loopback Application

The Publish Loopback Application process takes a previously created Loopback application and publishes it to an API Connect instance. The catalog and application must be previously created on API Manager. Log into your Bluemix account for API Manager. Follow the prerequisite steps to prepare an application for deployment. If the prerequisite steps are followed, many of the predefined values in the template are untouched.

The following prerequisites are required.

  1. To create a loopback application, follow the steps in the Creating a LoopBack project from the command line which is part of the IBM API Connect documentation. After the steps are complete, the final application name and local folder is acme-bank. Make note of the path to the folder. This information is needed later.
  2. To create a catalog and app on API Manager, follow the first set of steps one through eight Publishing a project from the command line. It is not necessary to save the catalog and application identifiers. When completed,
    • The name of the Catalog is Sandbox, with an ID of sb
    • The name of the Application is Acme Bank, with an ID of acme-bank

    Note: Do not follow any steps that point to using the command line.

HCL Launch steps

After the prerequisites are completed, the following tasks are done in HCL Launch.

  1. In the HCL Launch interface install the IBM API Connect plugin. Click tt > Components and then the Templates tab. The API Connect Publish Loopback Application template should be in the template list. Open the template.
  2. Click Create Component.
  3. Fill out the form. If the prerequisite steps were followed, many of the required fields can be ignored or require minimal modifications. Specifically, home_dir/home_dir refers to the path leading up to the required folder or definition. This is the location where the application was created in the create application prerequisite step. The Organization is a modification of your user name. If you are unsure, it can be found in the API Manager console. Update the username and password with your credentials. If the prerequisite steps were not followed, all of the required fields must be edited.

    Note: While the Version Source Configuration is required, it is ignored in this template process.

  4. Click Save.
  5. Create a new application, attach the newly created Component, assign the Component an agent resource, and run the Publish Loopback Application process.
  6. You can verify the newly published Loopback application by viewing the products within the Sandbox catalog on the API Connect console.

Note: In apic version 1.0.2, you may experience an authentication error when deploying a Loopback app. If so, refer to the troubleshooting page to resolve the issue.

Template Process

This template is composed of six steps:

  1. Login
  2. Set Configuration Variable App
  3. Set Configuration Variable Catalog
  4. Publish API Product Definitions
  5. Publish an Application
  6. Logout

Release API Product Definitions from Drafts

The Release API Product Definitions from Drafts template takes a previously definition YAML file, saves it to Drafts, and then publishes it to an API Connect instance. The catalog and application must be previously created on API Manager.

The following prerequisites steps prepare a definition for deployment. If the prerequisite steps are followed, many of the templates predefined values may be left untouched.

  1. Create an API definition from the command line. You can use the directions in the Creating a LoopBack project from the command line topic.
  2. Open a command line interface and issue the following commands:
    1. apic create --type api --title Loans to create a sample local .yaml definition.
    2. apic validate loans.yaml to validate that the .yaml definition file was created correctly.
    3. apic create --type product --title "Banking Services" --apis loans.yaml to create the final product definition named: banking-services.yaml. Record the location of this file, this information is needed later.
  3. Create a catalog on API Connect. Follow the first set of steps one through four here. It is not necessary to save the catalog and application identifiers. When completed, the name of the Catalog is Sandbox, with an ID of sb. The same Sandbox catalog may be reused if it has been previously created.

HCL Launch steps

After the prerequisites are completed, the following tasks are done in HCL Launch.

  1. In the HCL Launch user interface, install the IBM API Connect plugin, click the Components, and then the Templates tab. The API Connect Release API Product Definitions from Drafts template should be in the template list. Enter the template.
  2. Click the Create Component.
  3. Fill out the form. If the prerequisite steps were followed, many of the required fields can be ignored or require minimal modifications. Specifically, refers to the path leading up to the API product definition. This is the location where the product was created in the prerequisite steps. The Organization is a modification of your username. If you are unsure, it can be found in the API Manager console. Lastly, update the username and password with your credentials. If the prerequisite steps were not followed, all of the required will need to be edited.

    Note: While the Version Source Configuration is required, it is ignored in this template process.

  4. Click Save.
  5. Create a new Application, attach the newly created Component, assign the Component an agent resource, and run the Release API Product Definitions from Drafts process.
  6. The newly published API product definition can be verified by viewing the products within the Sandbox catalog on the API Connect console.

Note: The loans.yaml file created in the prerequisite steps, might not have the correct gateway assigned causing an error to occur while pushing or publishing a API definition. Refer to the troubleshooting page to resolve this issue.

Template Process

This template is composed of four steps:

  1. Login
  2. Push API Product Definitions to Drafts
  3. Publish API and Product Definitions
  4. Logout

Steps

The following process steps are available in the IBM API Connect plugin.

Login

Authenticate with an API Connect cloud through the management server.
This step is a prerequisite for all other steps in the IBM API Connect plugin. (apic
login)

Input properties for the Login step
Name Type Description Required
APIC Tool Path String The full path to the apic command-line tool. For example: C:\Users\John\AppData\Roaming\npm\apic.cmd No
Password Password The password to use to authenticate with the API Connect management server. Yes
Realm String The identity provider used to authenticate and the scope of the tasks
that can be performed (I.E. provider/default-idp-2). This field is required
if using the API Connect v2018 toolkit.
No
Server String The API Connect management server endpoint to authenticate with. For example, the
IBM Bluemix endpoint is us.apiconnect.ibmcloud.com.
Yes
Username String The user name to use to authenticate with the API Connect management server. Yes

Logout

Remove local authentication credentials for an API Connect cloud.
Run this step at the end of each deployment process. (apic logout)

Input properties for the Logout step
Name Type Description Required
APIC Tool Path String The full path to the apic command-line tool. For example: C:\Users\John\AppData\Roaming\npm\apic.cmd No
Server String The API Connect management server endpoint to remove credentials from. For example,
the IBM Bluemix endpoint is us.apiconnect.ibmcloud.com.
Yes

Publish API Product Definitions

Publish the API product and referenced APIs to a catalog. (apic products:publish)

Input properties for the Publish API Product Definitions step
Name Type Description Required
API Product Definitions String The full path to the YAML file that contains the API or product definitions. Yes
APIC Tool Path String The full path to the apic command-line tool. For example: C:\Users\John\AppData\Roaming\npm\apic.cmd No
Catalog String The name of the catalog to deploy to. Yes
Organization String The name of the provider organization. Yes
Server String The management server endpoint to publish to. For example, the IBM Bluemix endpoint
is us.apiconnect.ibmcloud.com.
Yes
Space String Enter a space to deploy to (if applicable for this catalog) No
Stage Status Boolean Select to keep the product in the staged state, instead of moving to published state. No

Publish an Application (API Connect v5.x)

Publish a Node.js (LoopBack) application to a provider application (apic apps:publish).
Note: This command is not supported if using API Connect v2018.x.

Input properties for the Publish an Application (API Connect v5.x) step
Name Type Description Required
APIC Tool Path String The full path to the apic command-line tool. For example: C:\Users\John\AppData\Roaming\npm\apic.cmd No
Loopback Application String The name of the LoopBack application. Yes
Loopback Project Directory String The full path to the directory that contains the LoopBack application. Yes
Organization String The name of the provider organization. Yes
Server String The management server endpoint to publish to. For example, the IBM Bluemix endpoint
is us.apiconnect.ibmcloud.com.
Yes

Push API Product Definitions to Drafts (API Connect v5.x)

Push API product definitions to drafts on an API Connect cloud (apic drafts:push).
Note: This command is not supported with API Connect v2018.x.

Input properties for the Push API Product Definitions to Drafts (API Connect v5.x) step
Name Type Description Required
API Product Definitions String The full path to a YAML file that contains the API product definitions. Example: banking-services.yaml. Yes
APIC Tool Path String The full path to the apic command-line tool. For example: C:\Users\John\AppData\Roaming\npm\apic.cmd No
Organization String The provider organization name. Yes
Product Only Boolean Select to push only the product. If not selected, the product and referenced APIs
are pushed.
No
Replace Named Version String The name and version of a definition to replace. Use the following format: Name:Version.
For example: climbon:1.0.0
No
Server String The management server endpoint to push to. For example, the IBM Bluemix endpoint is
us.apiconnect.ibmcloud.com.
Yes

Replace Product in Catalog

Replace a published or deprecated product in a catalog with another product (apic
products:replace)
The old product will be retired. The new product must be either staged, published,
or deprecated.

Input properties for the Replace Product in Catalog step
Name Type Description Required
APIC Tool Path String The full path or folder to the apic command-line tool. For example: C:\Users\John\AppData\Roaming\npm\apic.cmd No
Catalog String The name of the catalog ncontaining the product to be replaced. Yes
New Product String The new product to replace the old product, specified on the Old Product property.
Use the format: NEW_PRODUCT_NAME:VERSION_NAME.
Yes
Old Product String Select to replace the old product. Use the format: OLD_PRODUCT_NAME[:VERSION_NAME].
The :VERSION_NAME portion is optional. If if is not specified,
the first published version of the product is replaced.
Yes
Organization String The name of the provider organization. Yes
Plan Mappings String A list of old to new product plan mappings. Specify each mapping on a new line in
the format: SOURCE_PLAN_NAME:TARGET_PLAN_NAME. You must map all product plans.
Yes
Server String The management server endpoint to set the variable on. For example, the IBM Bluemix
endpoint is us.apiconnect.ibmcloud.com.
Yes
Space String Enter a space to replace in (if applicable for this catalog). No

Set Configuration Variable

Set a configuration variable. You do not need to run the Login step before running this step. This is a wrapper step for the App and Catalog Identifier. If you have access to the Identifier, run that command through the Shell step. (apic config:set)

Input properties for the Set Configuration Variable step
Name Type Description Required
APIC Tool Path String The full path to the apic command-line tool. For example: C:\Users\John\AppData\Roaming\npm\apic.cmd No
App or Catalog Name String The name of an application or catalog to configure. Yes
Config Variable Type Enumeration

The type of variable to configure. Valid values are app and catalog. Yes
Global Boolean The global configuration variable. No
Local Boolean The local application configuration variable. No
Organization String The name of the provider organization. Yes
Server String The management server endpoint to set the variable on. For example, the IBM Bluemix
endpoint is us.apiconnect.ibmcloud.com.
Yes

Supersede Product in Catalog

Supersede a published product in a catalog with another product (apic products:replace).
The old product is deprecated. The new product must be either staged, published, or
deprecated.

Input properties for the Supersede Product in Catalog step
Name Type Description Required
APIC Tool Path String The full path or folder to the apic command-line tool. For example: C:\Users\John\AppData\Roaming\npm\apic.cmd No
Catalog String The name of the catalog containing the product to be replaced. Yes
New Product String The new product to supersed the old product. Use the format:
NEW_PRODUCT_NAME:VERSION_NAME.
Yes
Old Product String The name of the old product to be superseded. Use the format: OLD_PRODUCT_NAME[:VERSION_NAME].
The :VERSION_NAME portion is optional. If you is not specified,
the first published version of the product is replaced.
Yes
Organization String The name of the provider organization. Yes
Plan Mappings String A list of old to new product plan mappings. Specify each mapping on a new line in
the format: SOURCE_PLAN_NAME:TARGET_PLAN_NAME. You must map all product plans.
Yes
Server String The management server endpoint to set the variable on. For
example, the IBM Bluemix endpoint is us.apiconnect.ibmcloud.com.
Yes
Space String Enter a space to supersede in (if applicable for this catalog). No

Troubleshooting

Login Step: ERROR {error:invalid_client,error_description:Unauthorized grant type: password}

IBM API Connect is beginning to introduce federated identity, and therefore, requires a workaround until it has been fully implemented. This incomplete authentication strategy creates issues after you have configured the catalog and app variable or attempt to push a Loopback app. The workaround is simple. Run the following command on the command line and login into Bluemix through the browser pop-up:
apic edit

After logging in, the required access token will be set locally. At this point the Login step can be ignored or removed and plugin steps may be called normally. If you use the Logout step, the access token will need to be regenerated via the above command. This resolution should only be necessary if you modify the app and catalog configuration settings or the Publish an Application step is used.

Publish an Application Step: ERROR Make sure you have logged in. ERROR

Refer to the resolution above.

ERROR API loans:1.0.0 with property gateway set to micro-gateway incompatible with Catalog Sandbox gateway datapower-gateway .

The command apic create --type api --title Loans, which is used in the tutorial, creates a simplified API definition that sets the gateway to micro-gateway. Unfortunately, this may not be the same gateway used in your catalog. The easiest way to resolve this issue, is to manually open the load.yaml file and change micro-gateway to the Catalogs gateway. The error message will tell you what gateway to change it to. In this example, the loan.yamls gateway need to be changed from micro-gateway to datapower-gateway. Refer to your error message for the correct gateway setting.

Other Errors

The apic toolkit is frequently being upgraded and improved. Ensure that your version of the apic toolkit is supported by this plugin. Supported versions and installation instructions can be found on the plugins Summary page.