Automation Platform Tasks

Client REST

This class provides methods required to support a simple rest client for various HTTP interactions. It has been designed to be as closest as possible to HTTP::Request and LWP::UserAgent object methods.

The following is an example of its usage.

sub stepGetContent {
    my ($pluginObject) = @_;
    # retrieving context object
    my $context = $pluginObject->getContext();
    # creating new FlowPDF::Client::REST object
    my $rest = $context->newRESTClient();
    # creatung new HTTP::Request object using FlowPDF APIs
    my $request = $rest->newRequest(GET => 'http://electric-cloud.com');
    # performing request and getting HTTP::Response object.
    my $response = $rest->doRequest($request);
    # printing response content
    print "Content: ", $response->decoded_content();
}

new($parameters)

Class Constructor. Creates new FlowPDF::Client::REST object.

To use FlowPDF::Client::REST with proxy provide a proxy parameters to constructor. They are:

  • url

    Address of the proxy to be used as http proxy.

  • username

    username for proxy authorization.

  • password

    password for proxy authorization.

  • debug

    Switch to enable debug. If set to True FlowPDF::Proxy will be enabled for debug as well.

Parameters

  • (Optional)(HASH ref) Parameter used to retrieve additional information from FlowPDF::Client::REST.

Returns

FlowPDF::Client::REST

Usage

my $rest = FlowPDF::Client::REST->new({
    proxy => {
        url => 'http://squid:3128',
        username => 'user1',
        password => 'user2'
    }
});

As can be seen above FlowPDF::Rest loads automatically to create a new instance of FlowPDF::Client::REST.

newRequest(@parameters)

Creates new HTTP::Request object.

This wrapper has been created to implement augmenations to components during request object creation.

For example, if FlowPDF::Client::Rest has been created with proxy support, it will return HTTP::Request object with applied proxy fields.

This method has the same interface and usage as HTTP::Request::new();

Parameters

HTTP::Request::new() parameters.

Returns

HTTP::Request

Usage

my $request = $rest->newRequest(GET => 'https://electric-cloud.com');

doRequest($httpRequest)

Performs HTTP request, using HTTP::Request object as parameter, leveraging the LWP::UserAgent::request() method.

Parameters

LWP::UserAgent::request() parameters

Returns

HTTP::Response

Usage

my $request = $rest->newRequest(GET => 'https://electric-cloud.com');
my $response = $rest->doRequest($request);
print $response->decoded_content();

augmentUrlWithParams($url, $arguments)

Helper method, that provides a mechanism for adding query parameters to URL, with proper escaping.

Parameters

  • (Required)(String) Url that should be augmented with query parameters.

  • (Required)(HASH ref) hash of parameters to be escaped and added to the query string.

Returns

(String) Url with added query parameters.

Usage

my $url = 'http://localhost:8080';
$url = $rest->augmentUrlWithParams($url, {one=>'two'});
# url = http://localhost:8080?one=two