NAME
Perinci::Access - Wrapper for Perinci Riap clients
VERSION
version 0.29
SYNOPSIS
use Perinci::Access;
my $pa = Perinci::Access->new;
my $res;
# use Perinci::Access::InProcess
$res = $pa->request(call => "pl:/Mod/SubMod/func");
# ditto
$res = $pa->request(call => "/Mod/SubMod/func");
# use Perinci::Access::HTTP::Client
$res = $pa->request(info => "http://example.com/Sub/ModSub/func",
{uri=>'/Sub/ModSub/func'});
# use Perinci::Access::Simple::Client
$res = $pa->request(meta => "riap+tcp://localhost:7001/Sub/ModSub/");
# dies, unknown scheme
$res = $pa->request(call => "baz://example.com/Sub/ModSub/");
DESCRIPTION
This module provides a convenient wrapper to select appropriate Riap client (Perinci::Access::*) objects based on URI scheme (or lack thereof).
riap://perl/Foo/Bar/ -> InProcess
/Foo/Bar/ -> InProcess
pl:/Foo/Bar -> InProcess
http://... -> HTTP::Client
https://... -> HTTP::Client
riap+tcp://... -> Simple::Client
riap+unix://... -> Simple::Client
riap+pipe://... -> Simple::Client
You can customize or add supported schemes by providing class name or object to the handlers attribute (see its documentation for more details).
VARIABLES
$Log_Request (BOOL)
Whether to log every Riap request. Default is from environment variable LOG_RIAP_REQUEST, or false. Logging is done with Log::Any at trace level.
$Log_Response (BOOL)
Whether to log every Riap response. Default is from environment variable LOG_RIAP_RESPONSE, or false. Logging is done with Log::Any at trace level.
METHODS
new(%opts) -> OBJ
Create new instance. Known options:
handlers (HASH)
A mapping of scheme names and class names or objects. If values are class names, they will be require'd and instantiated. The default is:
{ riap => 'Perinci::Access::InProcess', pl => 'Perinci::Access::InProcess', http => 'Perinci::Access::HTTP::Client', https => 'Perinci::Access::HTTP::Client', 'riap+tcp' => 'Perinci::Access::Simple::Client', 'riap+unix' => 'Perinci::Access::Simple::Client', 'riap+pipe' => 'Perinci::Access::Simple::Client', }
Objects can be given instead of class names. This is used if you need to pass special options when instantiating the class.
$pa->request($action, $server_url, \%extra) -> RESP
Send Riap request to Riap server. Pass the request to the appropriate Riap client (as configured in handlers
constructor options). RESP is the enveloped result.
ENVIRONMENT
LOG_RIAP_REQUEST
LOG_RIAP_RESPONSE
SEE ALSO
Perinci::Access::Simple::Client
AUTHOR
Steven Haryanto <stevenharyanto@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.