ense;
use Carp;
use YAML::Any ();
=encoding utf8
=head1 NAME
Lim - Framework for RESTful JSON/XML, JSON-RPC, XML-RPC and SOAP
=head1 VERSION
Version 0.20
=cut
our $VERSION = '0.20';
our $CONFI
verify_require_client_cert => 1,
ca_path => '/etc/lim/ssl/certs'
},
json => {
pretty => 0
}
},
agent => {
config_file => '',
u
over multiple protocols.
It uses AnyEvent for async operations and SOAP::Lite, XMLRPC::Lite and JSON::XS
for processing protocol messages.
There are 3 parts in Lim that can work independenly, a Ser
m::RPC::Protocol::JSONRPC2;
use common::sense;
use Carp;
use Scalar::Util qw(blessed weaken);
use HTTP::Status qw(:constants);
use HTTP::Request ();
use HTTP::Response ();
use JSON::XS ();
use Lim
$JSON = JSON::XS->new->utf8->convert_blessed;
our $ID = 1;
our $ID_OVERFLOW = 2^32;
=head1 SYNOPSIS
...
=head1 SUBROUTINES/METHODS
=head2 Init
=cut
sub Init {
if (Lim::Config->{rpc}->{json}
->{pretty}) {
$JSON->pretty(1);
}
}
=head2 Destroy
=cut
sub Destroy {
}
=head2 name
=cut
sub name {
'jsonrpc2';
}
=head2 serve
=cut
sub serve {
}
=head2 handle
=cut
sub han
essed weaken);
use HTTP::Status qw(:constants);
use HTTP::Request ();
use HTTP::Response ();
use JSON::XS ();
use Lim ();
use Lim::Util ();
use Lim::RPC::Callback ();
use base qw(Lim::RPC::Protocol
1 NAME
...
=head1 VERSION
See L<Lim> for version.
=cut
our $VERSION = $Lim::VERSION;
our $JSON = JSON::XS->new->utf8->convert_blessed;
our %REST_CRUD = (
GET => 'READ',
PUT => 'UPDATE',
ad1 SUBROUTINES/METHODS
=head2 Init
=cut
sub Init {
if (Lim::Config->{rpc}->{json}->{pretty}) {
$JSON->pretty(1);
}
}
=head2 Destroy
=cut
sub Destroy {
}
=head2 name
=cut
sub
use common::sense;
use Carp;
use Scalar::Util qw(weaken);
use Log::Log4perl ();
use DBI ();
use JSON::XS ();
use AnyEvent ();
use AnyEvent::Util ();
use Lim ();
=encoding utf8
=head1 NAME
Lim::
%args = ( @_ );
my $self = {
logger => Log::Log4perl->get_logger($class),
json => JSON::XS->new->utf8->convert_blessed,
busy => 0
};
bless $self, $class;
weaken
$response = $self->{json}->incr_parse($buf);
};
if ($@) {
Lim::DEBUG and $self->{logger}->debug('Response JSON parse failed: ', $@);
onstants);
use HTTP::Request ();
use HTTP::Response ();
use LWP::MediaTypes ();
use Fcntl ();
use JSON::XS ();
use Lim ();
use Lim::Util ();
use Lim::RPC::Callback ();
use base qw(Lim::RPC::Protocol
1 NAME
...
=head1 VERSION
See L<Lim> for version.
=cut
our $VERSION = $Lim::VERSION;
our $JSON = JSON::XS->new->utf8->convert_blessed;
=head1 SYNOPSIS
...
=head1 SUBROUTINES/METHODS
=head2 In
$cb->cb->($response);
return 1;
}
if (defined $query->{jsonpCallback}) {
my ($content, $buf);
while (sysread(FILE, $buf, 64*1024)) {
m::RPC::Protocol::JSONRPC1;
use common::sense;
use Carp;
use Scalar::Util qw(blessed weaken);
use HTTP::Status qw(:constants);
use HTTP::Request ();
use HTTP::Response ();
use JSON::XS ();
use Lim
$JSON = JSON::XS->new->utf8->convert_blessed;
our $ID = 1;
our $ID_OVERFLOW = 2^32;
=head1 SYNOPSIS
...
=head1 SUBROUTINES/METHODS
=head2 Init
=cut
sub Init {
if (Lim::Config->{rpc}->{json}
->{pretty}) {
$JSON->pretty(1);
}
}
=head2 Destroy
=cut
sub Destroy {
}
=head2 name
=cut
sub name {
'jsonrpc1';
}
=head2 serve
=cut
sub serve {
}
=head2 handle
=cut
sub han
$_[0];
}
=item $hash_ref = $error->TO_JSON
Returns a hash reference describing the error, this is to support passing
objects to L<JSON::XS>.
=cut
sub TO_JSON {
{
'Lim::Error' => {