Quiq::Confluence::Client - Confluence-Wiki Client
Quiq::Hash
Ein Objekt der Klasse repräsentiert einen Client, der über die 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 der Confluence REST API. Die Implementierung wird nach Bedarf erweitert.
$cli = $class->new(@keyVal);
Basis-URL des Confluence Wiki, z.B. "https://<name>.atlassian.net".
Name des Confluence-Benutzers, z.B. "admin".
Passwort des Confluence-Benutzers.
Gib Laufzeit-Informationen auf STDERR aus.
Client-Objekt (Typ Quiq::Confluence::Client)
Instantiiere einen Client für Confluence mit den Eigenschaften @keyval und liefere eine Referenz auf dieses Objekt zurück.
Client für Atlassian Demo-Instanz:
$cli = Quiq::Confluence::Client->new( url => 'https://<name>.atlassian.net', user => 'admin', password => '<password>', verbose => 1, );
$pag = $cli->createPage($parentId,$title,$markup,@opts);
Die Page-Id der übergeordneten Seite.
Der Titel der Seite.
Seiteninhalt in Confluence Wiki Markup.
Setze eine Warnung an den Anfang der Seite, dass die Seite automatisch generiert wurde.
nichts
Erzeuge eine Confluence-Seite mit Titel $title und Inhalt $markup (= Wiki Code) als Unterseite von der Seite mit der Seiten-Id $parentId und liefere das Seiten-Objekt der der erzeugten Seite zurück.
Die erzeugte Seite ist (notwendigerweise) demselben Space wie die übergeordnete Seite zugeordnet.
$pag = $cli->deletePage($pageId);
Seiten-Id
Nichts
Lösche die Confluence-Seite mit der Seiten-Id $pageId.
$pag = $cli->getPage($pageId);
Seiten-Objekt (Typ Quiq::Confluence::Page)
Rufe die Confluence-Seite mit der Seiten-Id $pageId ab und liefere ein Seiten-Objekt vom Typ Quiq::Confluence::Page zurück.
$cli->updatePage($pageId,$markup,@opts);
Seiteninhalt in Confluence Wiki Markup
Setze eine Warnung an den Anfang der Seite, dass die Seite automatisch erzeugt wurde.
Setze den Seitentitel.
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.
$pag = $cli->createAttachment($parentId,$file);
Pfad zur Attchment-Datei.
Füge Datei $file als Attachment zur Confluence-Seite mit der Seiten-Id $pageId hinzu.
Die folgenden Methoden bilden die Grundlage für die Kommunikation mit dem Confluence-Server. Sie werden normalerweise nicht direkt gerufen.
$res = $cli->send($method,$path); $res = $cli->send($method,$path,$contentType,$content);
Die HTTP-Methode, z.B. 'PUT'.
Der REST-Pfad, z.B. 'rest/api/content/32788'.
Der Content-Type des HTTP-Body, z.B. 'application/json'.
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"}
HTTP-Antwort (Typ HTTP::Response)
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.
$url = $cli->url; $url = $cli->url($path);
REST-API Pfad ohne führenden Slash, z.B. 'wiki/rest/api/content/32788'.
URL (String)
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.
Der Code
$cli = Quiq::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
1.150
Frank Seitz, http://fseitz.de/
Copyright (C) 2019 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.