NAME
Quiq::Confluence::Client - Confluence-Wiki Client
BASE CLASS
DESCRIPTION
Ein Objekt der Klasse repräsentiert einen Client, der über die Confluence REST API mit einem Confluence-Server kommunizieren kann.
Doku für Python: https://atlassian-python-api.readthedocs.io/.Authentisierung gegen REST API der Cloud-Version s. Abschnitt To authenticate to the Atlassian Cloud APIs Jira, Confluence, ServiceDesk. Als Passwort muss ein Token angegeben werden, das im unter "Konto / Konto verwalten / Sicherheit / API Token" angelegt und verwaltet werden 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.
METHODS
Konstruktor
new() - Instantiiere Confluence-Client
Synopsis
$cli = $class->new(@keyVal);
Arguments
- url => $url
-
Basis-URL des Confluence Wiki, z.B. "https://<name>.atlassian.net".
- user => $user
-
Name des Confluence-Benutzers, z.B. "admin".
- password => $password
-
Passwort des Confluence-Benutzers.
- verbose => $bool (Default: 0)
-
Gib Laufzeit-Informationen auf STDERR aus.
Returns
Client-Objekt (Typ Quiq::Confluence::Client)
Description
Instantiiere einen Client für Confluence mit den Eigenschaften @keyval und liefere eine Referenz auf dieses Objekt zurück.
Example
Client für Atlassian Demo-Instanz:
$cli = Quiq::Confluence::Client->new(
url => 'https://<name>.atlassian.net',
user => 'admin',
password => '<password>',
verbose => 1,
);
Confluence Operationen
createPage() - Erzeuge Confluence Seite
Synopsis
$pag = $cli->createPage($parentId,$title,$markup,@opts);
Arguments
- parentId => $pageId
-
Die Page-Id der übergeordneten Seite.
- $title
-
Der Titel der Seite.
- $markup
-
Seiteninhalt in Confluence Wiki Markup.
Options
- -warning => $bool (Default: 0)
-
Setze eine Warnung an den Anfang der Seite, dass die Seite automatisch generiert wurde.
Returns
nichts
Description
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.
deletePage() - Lösche Confluence Seite
Synopsis
$pag = $cli->deletePage($pageId);
Arguments
Returns
Nichts
Description
Lösche die Confluence-Seite mit der Seiten-Id $pageId.
getPage() - Liefere Confluence Seite
Synopsis
$pag = $cli->getPage($pageId);
Arguments
Returns
Seiten-Objekt (Typ Quiq::Confluence::Page)
Description
Rufe die Confluence-Seite mit der Seiten-Id $pageId ab und liefere ein Seiten-Objekt vom Typ Quiq::Confluence::Page zurück.
updatePage() - Aktualisiere Confluence Seite
Synopsis
$cli->updatePage($pageId,$markup,@opts);
Arguments
Options
- -warning => $bool (Default: 0)
-
Setze eine Warnung an den Anfang der Seite, dass die Seite automatisch erzeugt wurde.
- -title => $title
-
Setze den Seitentitel.
Returns
nichts
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.
createAttachment() - Füge Attachment zu Confluence-Seite hinzu
Synopsis
$pag = $cli->createAttachment($parentId,$file);
Arguments
Returns
nichts
Description
Füge Datei $file als Attachment zur Confluence-Seite mit der Seiten-Id $pageId hinzu.
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);
Arguments
- $method
-
Die HTTP-Methode, z.B. 'PUT'.
- $path
-
Der REST-Pfad, z.B. '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)
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.
url() - Erzeuge Request URL
Synopsis
$url = $cli->url;
$url = $cli->url($path);
Arguments
Returns
URL (String)
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.
Example
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
VERSION
1.220
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2024 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.