NAME

Dokuwiki::Frontier::Client - A Frontier::Client for dokuwiki.

SYNOPSIS

Dokuwiki::Frontier::Client extends the Frontier::Client with the Dokuwiki XML-RPC methods (without namespace) described in the dokuwiki xml-rpc page.

so the call to the wiki.getAllPages (which also require a call to dokuwiki.login) is like:

use Dokuwiki::Frontier::Client;
use YAML ();

my $client = Dokuwiki::Frontier::Client->base('https://di.u-strasbg.fr/')
    or die;

$client->login('editor','s3cr3t')
    or die; 

print YAML::Dump [ $client->getAllPages ];

CONSTRUCTORS

Note that base is just a shortcut for new. those constructions are equivalent:

Dokuwiki::Frontier::Client->base('https://di.u-strasbg.fr/');
Dokuwiki::Frontier::Client->base(url => 'https://di.u-strasbg.fr/');
Dokuwiki::Frontier::Client->new(url => 'https://di.u-strasbg.fr/lib/exe/xmlrpc.php' );

METHODS, INTROSPECTION

%Dokuwiki::Frontier::Client::API is a hash where keys are the Dokuwiki::Frontier::Client methods and values are the Dokuwiki XML-RPC methods. So you can have the list of the mapped functions with:

perl -MDokuwiki::Frontier::Client -E'say for keys %Dokuwiki::Frontier::Client::API'

but please refer to the dokuwiki xml-rpc page for more details.

A REAL WORLD EXAMPLE

use Dokuwiki::Frontier::Client;
use Modern::Perl;
use Net::Netrc;
use YAML;

my $base = 'https://example.com/';
my $host = 'server.example.com';

my $wiki = Dokuwiki::Frontier::Client->base
    ( $host , debug => 1 );

my $credentials = Net::Netrc->lookup($host)
    or die "please add a fake $host machine in your ~/.netrc";

$wiki->login( ($credentials->lpa)[0,1] )
    or die "can't authenticate";

say YAML::Dump [$wiki->getPage('/ficheappli/start')];