Many businesses have strict SLAs with vendors or third-party companies. For example, one of our customers need to stay within milliseconds to support Apple Pay. When SLA are not met, it can have serious financial consequences, so its critical that your API solution provides extensibility to meet strict business controls.

Fortunately, GatewayScript provides access to a rich set of JavaScript functions which allow you to enforce millisecond timeout. You can use this code as part of a GatewayScript policy within DataPower or API Connect. The default Invoke policy in API Connect only supports seconds so you can modify the Invoke policy to use GatewayScript if you need to support milliseconds.

const urlopen = require('urlopen');
main();
async function main() {
    var open_options = {
        // the target URL
        target: 'http://backend.something/v2/5e4d491a2d0000339ec0dd15',
        // method is optional, default is GET
        method: 'GET',
        timeout: 1
      };
    //reject on 10ms
    const response = await urlOpen( open_options, 10);
    console.error('response: %j',response)
}
function urlOpen(open_options, timeout) {
    return new Promise(function(resolve, reject) {
        urlopen.open(open_options, function (error, response) {
            if (error) {
              console.error("openCallback error: " + error.errorMessage+"\n");
              resolve(reject)
            }
            else {
                resolve(response);
            }
          });
          setTimeout(reject, timeout);

Join The Discussion

Your email address will not be published. Required fields are marked *