June 9, 2020 By Kazuki Nobutani 3 min read

IBM API Connect offers a series of APIs that allow users to have better control over the API Connect instances on IBM Cloud.

These APIs must be accessed using a token-based authentication called JSON Web Token (JWT) for improved security. 

Prerequisites

Goal

In this post, I am going to show you how to obtain the JWT token using a curl command, and then I’ll call an API to get a list of products in a catalog from the developer portal as a demo. 

On top of the JWT token, this particular API requires the following header and a parameter when you call it via CURL. Steps 2 and 3 will cover how to obtain necessary elements:

  • Header: X-IBM-APIManagement-Context:<providerOrg>.<Catalog> 
  • Parameter: originURL, which is the URL of your API Connect developer portal

Please note that required headers and parameters vary depending on the API. 

Step 1. Obtain the JWT token

Run the following command to obtain the JWT token:

curl -k -i -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
https://login.service.<REGION>.apiconnect.ibmcloud.com/apikey?apikey=<APIKEY>

Replace <APIKEY> with the API key you have and change <REGION> to the region where your instance is deployed:

  • Sydney = au
  • Dallas = us
  • Washington = us-east
  • London = eu
  • Frankfurt = eu-de 

CURL command example:

curl -k -i -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
https://login.service.us.apiconnect.ibmcloud.com/apikey?apikey=0123456789F1C4dbHedPjBEsOiKnOovbbZabcdefg

Response example: 

The response contains the JWT token. You need this token when you call APIs, so copy and paste it somewhere secure:

{"jwt":"eyJhbGciOiJFUzM4NCIsInR5cC.....4Tcsbokc4"}

Step 2. Find the catalog name

Each catalog in your API Connect has its display name and a short name. We are going to use the short name when we call APIs, and here is how to find it:

  1. Open API Connect from the IBM Cloud Dashboard:
  2. Open a catalog published to the developer portal.
  3. Go to the Settings > Overview tab and look for the Name:

Step 3. Find the provider organization

Provider organization is a name assigned to your API Connect instance. When you call APIs, you can use either the provider organization name or ID. We used the following API to look up the configuration details of a portal based on its originURL:

curl -k -i -X GET https://apimanager.<REGION>.apiconnect.cloud.ibm.com/v1/portal/config?originURL=<DEV PORTAL>

Replace <REGION> with the region where your instance is deployed and change <DEV PORTAL> to your developer portal home URL:

  • Sydney = au-syd
  • Dallas = us-south
  • Washington = us-east
  • London = eu-gb
  • Frankfurt = eu-de

CURL command example:

curl -k -i -X GET https://apimanager.us-south.apiconnect.cloud.ibm.com/v1/portal/config?originURL=https://sandbox-ORG-SPACE.developer.us.apiconnect.ibmcloud.com/

Response example:

{"expired":false,"applicationLifecycleEnabled":false,"orgID":"PROVIDER ORG ID","orgName":"PROVIDER ORG NAME" ... "apim","realm":null,"writable":true,"isCaseSensitive":false},"paymentGateways":[]}

Step 4. Invoke Manager API

It’s time to get the product list. As per the document, we are calling this API endpoint using CURL:

curl -k -i -H "X-IBM-APIManagement-Context: <providerOrgNAME/ID>.<Catalog>" \
-X GET https://apimanager.us-south.apiconnect.cloud.ibm.com/v1/portal/products \
-H 'Authorization: Bearer <JWT token>'

Replace <JWT token> with the JWT token obtained in Step 1. Change <providerOrgNAME/ID> and <Catalog> to the provider organization name or ID and the catalog short name obtained in Steps 2 and 3. Then, replace <REGION> with the region where your instance is deployed.

  • Sydney = au-syd
  • Dallas = us-south
  • Washington = us-east
  • London = eu-gb
  • Frankfurt = eu-de

CURL command example:

curl -k -i -H "X-IBM-APIManagement-Context: 123459970cf25013613be87e.sandbox" \
-X GET https://apimanager.us-south.apiconnect.cloud.ibm.com/v1/portal/products \
-H 'Authorization: Bearer eyJhbG...csbokc4'

Response example:

[{"id":"PRODUCT ID 1","info":{"name":"PRODUCT NAME 1","title":"PRODUCT TITLE 1","version":"1.0.0"},"url":"https://apimanager.us-south.apiconnect.cloud.ibm.com/v1/portal/products/PRODUCT ID 1","status":"published"},

{"id":"PRODUCT ID 2","info":{"name":"PRODUCT NAME 2","title":"PRODUCT TITLE 2","version":"1.0.0"},"url":"https://apimanager.us-south.apiconnect.cloud.ibm.com/v1/portal/products/PRODUCT ID 2","status":"published"},

{"id":"PRODUCT ID 3","info":{"name":"PRODUCT NAME 3","title":"PRODUCT TITLE 3","version":"1.0.0"},"url":"https://apimanager.us-south.apiconnect.cloud.ibm.com/v1/portal/products/PRODUCT ID 3","status":"published"},]

What’s next?

IBM API Connect offers a number of different APIs and now you are ready to explore the options. Please refer to the IBM Knowledge Center for IBM API Connect for the available API list.

For any questions or concerns, please contact IBM Cloud Support.

Was this article helpful?
YesNo

More from Cloud

Apache Kafka use cases: Driving innovation across diverse industries

6 min read - Apache Kafka is an open-source, distributed streaming platform that allows developers to build real-time, event-driven applications. With Apache Kafka, developers can build applications that continuously use streaming data records and deliver real-time experiences to users. Whether checking an account balance, streaming Netflix or browsing LinkedIn, today’s users expect near real-time experiences from apps. Apache Kafka’s event-driven architecture was designed to store data and broadcast events in real-time, making it both a message broker and a storage unit that enables real-time…

Primary storage vs. secondary storage: What’s the difference?

6 min read - What is primary storage? Computer memory is prioritized according to how often that memory is required for use in carrying out operating functions. Primary storage is the means of containing primary memory (or main memory), which is the computer’s working memory and major operational component. The main or primary memory is also called “main storage” or “internal memory.” It holds relatively concise amounts of data, which the computer can access as it functions. Because primary memory is so frequently accessed,…

Cloud investments soar as AI advances

3 min read - These days, cloud news often gets overshadowed by anything and everything related to AI. The truth is they go hand-in-hand since many enterprises use cloud computing to deliver AI and generative AI at scale. "Hybrid cloud and AI are two sides of the same coin because it's all about the data," said Ric Lewis, IBM’s SVP of Infrastructure, at Think 2024. To function well, generative AI systems need to access the data that feeds its models wherever it resides. Enter…

IBM Newsletters

Get our newsletters and topic updates that deliver the latest thought leadership and insights on emerging trends.
Subscribe now More newsletters