The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

    GRNOC::WebService::Client - GlobalNOC Web Service Client

SYNOPSIS

    Module to implement clients that interact with cosign protected GRNOC CDS web services.
    Default Method is GET but POST can be used as well.

    Quick summary of what the module does.

    Perhaps a little code snippet.

    use GRNOC::WebService::Client;

    my $svc = GRNOC::WebService::Client->new(
        url => "https://sherpa.grnoc.iu.edu/web-service/foobar/example.cgi",
        uid => "test_uid",
        passwd  => $password,
        realm => 'Authentication Required', # needed for HTTP basic auth
        usePost => 0,
        debug => 0
    );

    #--- get list of available methods
    my $res= $svc->help();

    if(!defined $res){
        print Dumper($svc->get_error());
    }
    else{
        print Dumper($res);
    }


    #-- get help for specific method
    my $res= $svc->help(method_name => 'echo');

    if(!defined $res){
        print Dumper($svc->get_error());
    }
    else{
        print Dumper($res);
    }


    #--- call a web service method
    my $res= $svc->echo(data => 'This is a test');

    if(!defined $res){
        print Dumper($svc->get_error());
    }
    else{
        print Dumper($res);
    }

    ...

FUNCTIONS

    The list of methods available is dependent upon the web service you have bound to.  Use get_methods() to retrieve
    the list of available methods. Only the methods implemented in the client library are listed here.

new()

    constructor that takes four named parameters: .
url
    the url that directly indentifies a servcie
service_name
    the GlobalNOC service identifier, with this client will consult the service
    naming service to resolve, best URL to use.
service_cache_file
    the location of the service cache file to use on disk (if not specified does direct nameservice queries)
name_services
    array containing the locations of nameservices to use
uid
    user id for authentication
passwd
    user password
timeout
    timeout value in seconds for the connection, if no activity observed in this time period LWP will abort.
usePost
    boolean value for whether or not we are using http POST style or not
use_keep_alive
    boolean value for whether or not to try and use keep_alives
use_pagination
    boolean value for wether or not to use a GRNOC::WebService::Client::Paginator object to iterate through results
user_agent
    string to use as the User-Agent string in request headers, defaults to $0
verify_hostname
    If set to 1 then ssl certs are validated. Set to 0 when working with untrusted or self-signed certs. Defaults to 1.
retry_error_codes
    hash of http error codes to retry the request on if the request fails

get_error()

    gets the last error encountered or undef.

get_content_type

    Returns the Content-Type header of the last issue request

get_headers

    Returns all the headers as an array of objects from the last request

get_retries

    Returns the number of retries

get_retry_interval

    Returns the retry interval in seconds

set_retries

    Sets the number of retries if the initial request fails

get_realm

    Returns the realm set

set_retry_interval

    Sets the retry interval in seconds

set_raw_output

    Disables or enables returning the raw output instead of attempting to decode JSON.  This method
    should be passed 1 to enable raw output and 0 to disable raw output.  Raw output is disabled by
    default--is can also be set by passing the raw_output parameter in the constructor.

set_timeout

    Changes the timeout value in the underlying LWP object. Can only be set by passing timeout in the constructor
    call.
    Updates the cookie jar associated with the underlying LWP object. This can be passed a string representing
    a file on disk or an HTTP::Cookies object.

save_cookies

    Method to ask the underlying LWP UserAgent to save any cookies it might have.

set_url

    interface to change URL of an existing client, useful in stateful mod_perl.
Note: This wipes out any existing URLs that may have been loaded from a service identifier

clear_urls

    Wipes out all knowledge the client has about URLs, useful if trying to use one client persistently
    for multiple requests such as the proxy service

set_service_identifier

    interface to change what service identifier we are using.
Note: This wipes out any existing URLs that may have been loaded from a service identifier

set_credentials

    interface to change the username, password, and/or realm of the client

set_cookies

    interface to change cookies of an existing client, useful in stateful mod_perl. Object given must be a HTTP::Cookies object

AUTHOR

    GRNOC Systems Engineering, C<< <syseng at grnoc.iu.edu> >>

BUGS

    Please report any bugs or feature requests to C<< <syseng at grnoc.iu.edu> >>

SUPPORT

    You can find documentation for this module with the perldoc command.

    perldoc GRNOC::WebService::Client

ACKNOWLEDGEMENTS