Amazon-API
view release on metacpan or search on metacpan
lib/Amazon/API.pm view on Meta::CPAN
use JSON qw/to_json from_json/;
use LWP::UserAgent;
use Scalar::Util qw/reftype/;
use XML::Simple;
__PACKAGE__->follow_best_practice;
__PACKAGE__->mk_accessors(qw/action api api_methods version content_type
http_method credentials response protocol
region url service_url_base
signer target user_agent debug last_action
aws_access_key_id aws_secret_access_key token
/);
use vars qw/@EXPORT $VERSION/;
@EXPORT=qw/$VERSION/;
our $VERSION = '1.1.4-1'; $VERSION=~s/\-.*$//;
=pod
lib/Amazon/API.pm view on Meta::CPAN
C<Furl>, if you have it avaiable may result in faster response.
=item api (reqired)
The name of the AWS service. Example: AWSEvents
=item url
The service url. Example: https://events.us-east-1.amazonaws.com
=item debug
0/1 - will dump request/response if set to true.
=item action
The API method. Example: PutEvents
=item content_type
Default content for references passed to the C<invoke_api()> method. The default is C<application/x-amz-json-1.1>.
lib/Amazon/API.pm view on Meta::CPAN
unless $self->get_http_method eq 'GET';
$content = $parameters;
}
}
else {
$content = $parameters;
}
my $rsp = $self->submit(content => $content, content_type => $content_type);
if ( $self->get_debug ) {
print STDERR Dumper [$rsp];
}
# probably want to decode content when there is an error, but this
# will do for now
unless ($rsp->is_success) {
die new Amazon::API::Error({error => $rsp->code,
message_raw => $rsp->content,
content_type => $rsp->content_type,
api => $self
lib/Amazon/API.pm view on Meta::CPAN
$request->uri(sprintf("%s?%s", $request->uri(), $self->_finalize_content($options{content})));
}
$request->header('X-Amz-Security-Token', $self->get_credentials->get_token)
if $self->get_credentials->get_token;
# sign the request
$self->get_signer->sign($request);
# make the request, return response object
if ( $self->get_debug ) {
print STDERR Dumper([$request]);
}
$self->get_user_agent->request($request);
}
sub _finalize_content {
my $self = shift;
my $content = shift;
( run in 0.581 second using v1.01-cache-2.11-cpan-49f99fa48dc )