NAME
Prty::Confluence::Client - Confluence-Wiki Client
BASE CLASS
DESCRIPTION
Ein Objekt der Klasse repräsentiert einen Client, der über das Confluence REST API mit einem Confluence-Server kommunizieren kann.
Die Implementierung der Klasse stellt die maßgeblichen Mechnismen zur Kommunikation mit dem Server zur Verfügung, realisiert z.Zt. jedoch nur einen kleinen Ausschnitt der Funktionalität des Confluence REST API. Die Implementierung wird nach Bedarf erweitert.
METHODS
Konstruktor
new() - Instantiiere Confluence-Client
Synopsis
$cli = $class->new(@keyVal);
Description
Instantiiere einen Client für Confluence mit den Eigenschaften @keyval und liefere eine Referenz auf dieses Objekt zurück.
Arguments
- url => $url (Default: nichts)
-
Basis-URL des Confluence Wiki, z.B. "https://<name>.atlassian.net".
- user => $user (Default: nichts)
-
Name des Confluence-Benutzers, z.B. "admin".
- password => $password (Default: nichts)
-
Passwort des Confluence-Benutzers.
- verbose => $bool (Default: 0)
-
Gib Laufzeit-Informationen auf STDERR aus.
Returns
Client-Objekt (Typ Prty::Confluence::Client)
Example
Client für Atlassian Demo-Instanz:
$cli = Prty::Confluence::Client->new(
url => 'https://<name>.atlassian.net',
user => 'admin',
password => '<password>',
verbose => 1,
);
Confluence Operationen
getPage() - Liefere Confluence Seite
Synopsis
$pag = $cli->getPage($pageId);
Description
Rufe die Confluence-Seite mit der Seiten-Id $pageId ab und liefere ein Seiten-Objekt vom Typ Prty::Confluence::Page zurück.
Arguments
Returns
Seiten-Objekt (Typ Prty::Confluence::Page)
updatePage() - Aktualisiere Confluence Seite
Synopsis
$cli->updatePage($pageId,$markup,@opts);
Description
Ersetze den Inhalt der Confluence-Seite $pageId durch den neuen Inhalt $markup. Für die Aktualisierung sind vier Angaben erforderlich:
die PageId der Seite
der Inhalt der Seite
der Titel der Seite
die neue Versionsnummer der Seite
Um die neue Versionsnummer der Seite vergeben zu können, wird intern zunächst der aktuelle Stand der Seite abgerufen, der u.a. die bestehende Versionsnummer enthält. Die Versionsnummer ist eine ganze Zahl, die mit jeder Aktualisierung um 1 erhöht werden muss.
Der Titel der Seite wird aus dem aktuellen Stand der Seite übernommen, sofern er nicht mit der Option -title überschrieben wird.
Arguments
Options
- -warning => $bool (Default: 0)
-
Setze eine Warnung an den Anfang der Seite.
- -title => $title
-
Setze den Seitentitel.
Returns
nichts
Hilfsmethoden
Die folgenden Methoden bilden die Grundlage für die Kommunikation mit dem Confluence-Server. Sie werden normalerweise nicht direkt gerufen.
send() - Sende HTTP-Request an Confluence
Synopsis
$res = $cli->send($method,$path);
$res = $cli->send($method,$path,$contentType,$content);
Description
Sende einen HTTP-Request vom Typ $method mit dem REST-Pfad $path und dem Body $content vom Typ $contentType an den Confluence-Server und liefere die resultierende HTTP-Anwort zurück. Im Fehlerfall wirft die Methode eine Exception.
Arguments
- $method
-
Die HTTP-Methode, z.B. 'PUT'.
- $path
-
Der REST-Pfad, z.B. 'wiki/rest/api/content/32788'.
- $contentType
-
Der Content-Type des HTTP-Body, z.B. 'application/json'.
- $content
-
Der Inhalt des HTTP-Body, z.B. (auf die Toplevel-Attribute umbrochen)
{"version":{"number":24}, "body":{"storage":{"representation":"wiki","value":"{cheese}"}}, "title":"Testseite", "type":"page"}
Returns
HTTP-Antwort (Typ HTTP::Response)
url() - Erzeuge Request URL
Synopsis
$url = $cli->url;
$url = $cli->url($path);
Description
Erzeuge einen REST-API URL bestehend aus dem beim Konstruktor-Aufruf angegebenen Server-URL und dem Pfad $path und liefere diesen zurück. Ohne Argument wird der Server-URL geliefert.
Arguments
Returns
URL (String)
Example
Der Code
$cli = Prty::Confluence::Client->new(
url => 'https://<name>.atlassian.net',
...
);
$url = $cli->url('wiki/rest/api/content/32788');
liefert
https://<name>.atlassian.net/wiki/rest/api/content/32788
VERSION
1.100
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2016 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.