Automation Blog

from Stefan Schnell

REST Request with JavaScript


/**
 * @module de.stschnell.restRequestExample
 *
 * @author Stefan Schnell <mail@stefan-schnell.de>
 * @license MIT
 * @version 0.2.0
 *
 * @param {string} in_vcoFQDN vCO FQDN
 * @param {string} in_userName Name of the username
 * @param {SecureString} in_password Password of the user
 *
 * @outputType Properties
 *
 * @description Example how to use a REST Request with JavaScript
 *
 * @example
 * const in_vcoFQDN = "https://rainpole.auto.vcf.sddc.lab";
 * const in_userName = "holadmin@vcf.holo.lab";
 * const in_password = "VMware123!";
 * const result = System.getModule("de.stschnell").restRequestExample(
 *   in_vcoFQDN,
 *   in_userName,
 *   in_password
 * );
 * System.log(JSON.stringify(result));
 *
 * Checked with Aria Automation 8.18.0
 */

function main() {

  var restHost = RESTHostManager.createTransientHostFrom(
    RESTHostManager.createHost("dynamicRequest")
  );
  restHost.url = in_vcoFQDN;

  // Get the token for API call
  var login = JSON.stringify({
    "username": in_userName,
    "password": in_password
  });
  var request = restHost.createRequest(
    "POST", "/csp/gateway/am/api/login?access_token", login
  );
  request.contentType = "application/json";
  var response = request.execute();

  var refreshToken = "{\"refreshToken\":\"" +
    JSON.parse(response.contentAsString).refresh_token + "\"}";
  var request = restHost.createRequest(
    "POST", "/iaas/api/login", refreshToken
  );
  request.contentType = "application/json";
  var response = request.execute();

  var bearerToken = JSON.parse(response.contentAsString).token;

  // As example here get all deployments via Service Broker API call
  var request = restHost.createRequest(
    "GET", "/deployment/api/deployments?size=999"
  );
  request.setHeader("Content-Type", "application/json");
  request.setHeader("Accept", "application/json");
  request.setHeader("Authorization", "Bearer " + bearerToken);
  var response = request.execute();
  System.log(response.contentAsString);

  return JSON.parse(response.contentAsString);

}

return main();