Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How to Invoke an External REST API from a Cloud Function

DZone's Guide to

How to Invoke an External REST API from a Cloud Function

From creating your first cloud function, we now show you how you can create a function that invokes a REST API from a third party.

· Cloud Zone ·
Free Resource

Insight into the right steps to take for migrating workloads to public cloud and successfully reducing cost as a result. Read the Guide.

In a previous blog post, I showed how to create your first cloud function (plus a video). It's very likely that your cloud function will need to invoke an external REST API. The following tutorial will show you how to create such a function (it's very easy).

  1. Sign into an IBM Cloud account
  2. Click Catalog
  3. Remove the label:lite filter and type
  4. Click on Functions box
  5. Click the Start Creating button
  6. Click Create Action
  7. For Action Name, enter "ajoke" and click the Create button. A new cloud function will be created with Hello World message
  8. Replace the function code with the following code which invokes a 3rd party REST API which returns a random joke:
    
    var request = require("request");
    
    function main(params) {
       var options = {
          url: "https://api.icndb.com/jokes/random",
          json: true
       };
    
       return new Promise(function (resolve, reject) {
          request(options, function (err, resp) {
             if (err) {
                console.log(err);
                return reject({err: err});
             }
          return resolve({joke:resp.body.value.joke});
          });
       });
    }
    
    • The code is simple. It uses the request Node.js package to connect to an external REST API
    • The external REST API returns a random joke
    • A JavaScript Promise is used for invoking the REST API
    • At the end, the cloud function returns a response in JSON format
  9. Now click the Save button to save the code. Once the code is saved, the button will change to Invoke. Click the button to invoke the function. In the right-hand panel you should see output with a random joke:
    {
      "joke": "Project managers never ask Chuck Norris for estimations... ever."
    }

This is how it looks inside the IBM Cloud Functions editor:

Image title


Of course, you can also build and test a cloud function using the CLI. I'll cover that in another blog post.

For now, let's expose this cloud function as a REST API so we can invoke it outside the console. In fact, you will be able to invoke it directly from the browser once we make it a Web Action.

  1. On the left-hand side, click Endpoints
  2. Check Enable as Web Action and click Save
  3. Copy the URL and enter into a browser's address bar

Here is how it looks in Firefox:

Image title


That was easy, right?

In this blog post, you learned how to create a cloud function which invokes an external (3rd party) API. It's very likely that even the simplest application will need to get data from an external API so this a good example/template to have.

TrueSight Cloud Cost Control provides visibility and control over multi-cloud costs including AWS, Azure, Google Cloud, and others.

Topics:
cloud ,ibm cloud ,rest api ,invoke ,javascript ,node.js ,code ,how-to

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}