NAME
WWW::Suffit::UserAgent - Suffit API user agent library
VERSION
Version 1.00
SYNOPSIS
use WWW::Suffit::UserAgent;
my $clinet = WWW::Suffit::UserAgent->new(
url => "https://localhost",
username => "username", # optional
password => "password", # optional
max_redirects => 2, # Default: 10
connect_timeout => 3, # Default: 10 sec
inactivity_timeout => 5, # Default: 30 sec
request_timeout => 10, # Default: 5 min (300 sec)
);
my $status = $client->check();
if ($status) {
print STDOUT $client->res->body;
} else {
print STDERR $clinet->error;
}
DESCRIPTION
Suffit API user agent library
new
my $clinet = WWW::Suffit::UserAgent->new(
url => "https://localhost",
username => "username", # optional
password => "password", # optional
max_redirects => 2, # Default: 10
connect_timeout => 3, # Default: 10 sec
inactivity_timeout => 5, # Default: 30 sec
request_timeout => 10, # Default: 5 min (300 sec)
);
Returns the client instance
- auth_scheme
-
Sets the authentication scheme. HTTP Authentication Schemes: Bearer, Basic, ApiKey
Default: ApiKey (use token header)
- ask_credentials
-
Enables ask username and password from terminal
- max_redirects
-
Maximum number of redirects the user agent will follow before it fails. Default - 10
- password
-
Default password for basic authentication
- *timeout
-
Timeout for connections, requests and inactivity periods in seconds.
- ua
-
The Mojo UserAgent object
- url
-
Full URL of the WEB Server
- username
-
Default username for basic authentication
METHODS
List of the User Agent interface methods
cleanup
$client->cleanup;
Cleanup all variable data in object and returns client object
code
my $code = $clinet->code;
$client = $clinet->code(200);
Returns HTTP code of the response
credentials
my $userinfo = $client->credentials(1);
Gets credentials for User Agent
error
print $clinet->error;
$clinet = $clinet->error("My error");
Returns error string
path2url
# For url = http://localhost:8695/api
my $url_str = $client->path2url("/foo/bar");
# http://localhost:8695/api/foo/bar
Merges path to tail of url
# For url = http://localhost:8695/api
my $url_str = $client->path2url("/foo/bar", 1);
# http://localhost:8695/foo/bar
Sets path to url
private_key
$clinet = $clinet->private_key("---- BEGIN ... END -----");
my $private_key = $client->private_key;
Sets or returns RSA private key
public_key
$clinet = $clinet->public_key("---- BEGIN ... END -----");
my $public_key = $client->public_key;
Sets or returns RSA public key
proxy
my $proxy = $client->proxy;
$client->proxy('http://47.88.62.42:80');
Get or set proxy
req
my $request = $clinet->req;
Returns Mojo::Message::Request object
request
my $json = $clinet->request("METHOD", "PATH", ...ATTRIBUTES...);
Send request
res
my $response = $clinet->res;
Returns Mojo::Message::Response object
status
my $status = $clinet->status;
$clinet = $clinet->status(1);
Returns object status value. 0 - Error; 1 - Ok
str2url
# http://localhost/api -> http://localhost/api/foo/bar
my $url = $self->str2url("foo/bar");
# http://localhost/api -> http://localhost/foo/bar
my $url = $self->str2url("/foo/bar");
# http://localhost/api/baz -> http://localhost/api/baz
my $url = $self->str2url("http://localhost/api/baz");
Returns URL from specified sting
token
$clinet = $clinet->token("abc123...fcd");
my $token = $client->token;
Returns token
trace
my $trace = $client->trace;
print $client->trace("New trace record");
Gets trace stack or pushes new trace record to trace stack
tx
my $status = $clinet->tx($tx);
Works with Mojo::Transaction object, interface with it
tx_string
print $client->tx_string;
Retruns transaction status string
ua
my $ua = $clinet->ua;
Returns Mojo::UserAgent object
url
my $url_object = $clinet->url;
Returns Mojo::URL object
API METHODS
List of predefined the Suffit API methods
check
my $status = $client->check;
my $status = $client->check( URLorPath );
Returns check-status of server. 0 - Error; 1 - Ok
HTTP BASIC AUTHORIZATION
For pass HTTP Basic Authorization with ask user credentials from console use follow code:
my $client = WWW::Suffit::UserAgent->new(
ask_credentials => 1,
auth_scheme => 'Basic',
# ...
);
... and without ask:
my $client = WWW::Suffit::UserAgent->new(
username => 'test',
password => 'test',
# ...
);
You can also use credentials in the userinfo part of a base URL:
my $client = WWW::Suffit::UserAgent->new(
url => 'https://test:test@localhost',
# ...
)
TLS CLIENT CERTIFICATES
$client->ua->cert('tls.crt')->key('tls.key')->ca('ca.crt');
See "cert" in Mojo::UserAgent, "key" in Mojo::UserAgent, "ca" in Mojo::UserAgent and "tls_options" in Mojo::UserAgent
PROXY
In constructor:
my $client = WWW::Suffit::UserAgent->new(
proxy => 'http://47.88.62.42:80',
# ...
);
Before request:
my $status = $client
->proxy('http://47.88.62.42:80')
->request(GET => $client->str2url('http://ifconfig.io/all.json'));
# Socks5
my $status = $client
->proxy('socks://socks:socks@192.168.201.129:1080')
->request(GET => $client->str2url('http://ifconfig.io/all.json'));
Directly:
$client->ua->proxy
->http('http://47.88.62.42:80')
->https('http://188.125.173.185:8080');
my $status = $client
->proxy('http://47.88.62.42:80')
#->proxy('socks://socks:socks@192.168.201.129:1080')
->request(GET => $client->str2url('http://ifconfig.io/all.json'));
DEPENDENCIES
TO DO
See TODO
file
SEE ALSO
AUTHOR
Serż Minus (Sergey Lepenkov) https://www.serzik.com <abalama@cpan.org>
COPYRIGHT
Copyright (C) 1998-2023 D&D Corporation. All Rights Reserved
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See LICENSE
file and https://dev.perl.org/licenses/