NAME

WWW::DreamHost::API - Perl interface to DreamHost Web Panel API

VERSION

1.07

SYNOPSIS

my $key = '6SHU5P2HLDAYECUM';
my $api = new WWW::DreamHost::API($key);
my $res = $api->command('api-list_accessible_cmds');
print Data::Dumper->Dump([$res]);

DESCRIPTION

WWW::DreamHost::API provides a simple Perl interface to DreamHost Web Panel API.

Read more about API commands at http://wiki.dreamhost.com/Application_programming_interface

METHODS

new ( $key )

Creates WWW::DreamHost::API object

uuid ( )

Returns UUID. Probably actually unique (randomly based on key and run time). Don't worry, if it's not, because it's reinitializing in case of failure (though I cannot imagine how it can happen).

reinit ( )

If unique check fails, attempt to re-initialize. You don't have to call it yourself.

command ( $cmd, [ $param => $value, ]+ )

Execute a command.

To get a list of availible commands, use something like that:

my $res = $api->command('api-list_accessible_cmds');
if ($res->{'result'} eq 'success') {
    my @commands = @{ $res->{'data'} };
}

Returns a hash reference with (usually) 'result' and 'data' keys. 'result' can be 'success' or 'error', and 'data' depends on command executed.

See http://wiki.dreamhost.com/Application_programming_interface for more details.

CONFIGURATION AND ENVIRONMENT

WWW::DreamHost::API is based on libwww-perl which uses Crypt::SSLeay or IO::Socket::SSL, with all consequences: HTTPS_proxy environment variable and so on. See LWP documentation unless you're already familiar with it.

DEPENDENCIES

LWP::UserAgent Data::UUID LWP::protocol::https

If JSON.pm is installed, JSON format is used when making requests to API; otherwise Data::Dumper format is used. Note that Data::Dumper format is "eval"-ed so (in theory) it can be used for security breach. On the side note, Data::Dumper way is 7 times faster.

INCOMPATIBILITIES

Not known.

BUGS AND LIMITATIONS

Not known, but test suite MAY fail if DreamHost adds some other commands or change their behaviour. If you are using CPAN::Reporter in your service, I'll know about it. Consider installing it, as it really helps authors to know about possible bugs. See http://wiki.cpantesters.org/wiki/QuickStart.

AUTHOR

Serguei Trouchelle stro@cpan.org

LICENSE AND COPYRIGHT

This module is distributed under the same terms as Perl itself.

Copyright (c) 2009-2015 Serguei Trouchelle