Wikiseiten
Ab Codebeamer 7.4 können Sie Wikiseiten auch über die REST-API verwalten.
Jedes Codebeamer Projekt verfügt außerdem über ein Wiki, bei dem es sich um eine Baumstruktur von Wikiseiten handelt, wobei die Stammseite die Startseite des Projekts ist: "{projectURI}/wikipage".
Sie können Seiten zum bzw. aus dem Wiki eines Projekts hinzufügen, aktualisieren, verschieben und löschen. Sie können jedoch nicht die Projektstartseite selbst löschen oder verschieben (Aktualisierung ist zulässig).
Wikiseiten verfügen über URIs des Formulars: "/wikipage/{id}" oder "{projectURI}/wikipage/{name}", wobei {id} die interne eindeutige Wikiseite-ID/-Nummer ist und {name} der Name der Wikiseite ist, der nur innerhalb eines Projekts eindeutig ist.
Der Inhalt einer Wikiseite wird über Wiki-Markup definiert. Sie können Bilder über spezielle Markups in eine Wikiseite einbetten, wobei das Bild entweder eine Datei oder ein Anhang der Wikiseite sein kann.
Schema der Wikiseite abrufen
GET /wikipage/schema
Sie können das Schema der grundlegenden Wikiseite erweitern, indem Sie zusätzliche Metadateneigenschaften angeben (siehe
Entitätsmetadaten). Diese deklarierten Eigenschaften sind auch in der
Codebeamer Web-GUI sichtbar.
Es ist aber auch möglich, zusätzliche/nicht deklarierte Metadaten/Eigenschaften für eine Wikiseite festzulegen. Solche Eigenschaften sind nur für diese Seite sichtbar, wo sie definiert sind.
Neue Wikiseite erstellen
POST /wikipage
Sie benötigen eine Multipart-Anfrage, um eine Wikiseite mit Anhängen zu erstellen:
• Die Definition der Wikiseite muss sich im Teil mit dem Namen "body" befinden.
• Jeder Anhang muss ein zusätzliches Teil sein.
Die Metadaten müssen mindestens "project", "parent", "name" und "markup" enthalten, wobei der Name innerhalb des angegebenen Projekts eindeutig sein muss. Beispiel: Erstellen Sie eine neue Wikiseite als Kind der Startseite des Projekts mit einem einzelnen Bildanhang:
POST https://hostname/cb/rest/wikipage
Authorization: (Data not shown)
Accept: application/json
Accept-Language: en
Content-Type: multipart/form-data; boundary=--MULTIPART-BOUNDARY--
Content-Length: 29278
----MULTIPART-BOUNDARY--
Content-Disposition: form-data; name="body"
Content-type: application/json; charset=utf-8
{
"project" : "/project/Test",
"parent : "/project/Test/wikipage",
"name" : "Info about the Project Admin",
"description" : "A test wikipage for Rest-Api tests",
"markup" : "This is a picture of the project admin: [!Bond.jpg!]"
}
----MULTIPART-BOUNDARY--
Content-Disposition: form-data; name="Bond.png"; filename="Bond.png"
Content-Type: image/jpg
(Binary data not shown)
----MULTIPART-BOUNDARY----
Wikiseite aktualisieren
PUT /wikipage
Eine einzelne Teile-Anfrage ist ausreichend, um nur Metadaten oder Markups für Wikiseiten zu aktualisieren. Sie benötigen eine Multipart-Anfrage, um auch Anhänge hinzuzufügen oder zu aktualisieren:
PUT https://hostname/cb/rest/wikipage
Authorization: (Data not shown)
Accept: application/json
Accept-Language: en
Content-Type: multipart/form-data; boundary=--MULTIPART-BOUNDARY--
Content-Length: 29278
----MULTIPART-BOUNDARY--
Content-Disposition: form-data; name="body"
Content-type: application/json; charset=utf-8
{
"uri" : "/project/Test/wikipage/Info about the Project Admin",
"markup" : "This is a picture of the project admin: [!Bond.jpg!], while trying to open Pandora's box [!cube.png!]"
}
----MULTIPART-BOUNDARY--
Content-Disposition: form-data; name="cube.png"; filename="cube.png"
Content-Type: image/png
(Binary data not shown)
----MULTIPART-BOUNDARY----
Sie können nur "name", "description", "status", "markup" und benutzerdefinierte Metadaten/Eigenschaften einer Wikiseite ändern. Sie müssen den Befehl moveTo (siehe unten) verwenden, um eine Wikiseite in ein anderes Projekt oder einen anderen Speicherort zu verschieben.
Wikiseiten in ein anderes Projekt oder einen anderen Speicherort verschieben
PUT {wikipageURI}/{id}/moveTo/{wikipageURI}[?options]
Option | Typ | Erforderlich | Bedeutung |
|---|
overwrite | Boolesch | Nein | Wenn "true", wird eine vorhandene Wikiseite mit dem gleichen Namen am Zielort überschrieben (falls vorhanden). Der Standardwert ist "false". Dies bricht das Verschieben ab, wenn bereits eine Wikiseite mit dem gleichen Namen am Ziel vorhanden ist. |
Wikiseite in ein anderes Projekt oder einen anderen Speicherort kopieren
POST {wikipageURI}/copyTo/{wikipageURI}[?options]
Option | Typ | Erforderlich | Bedeutung |
|---|
overwrite | Boolesch | Nein | Wenn "true", wird eine vorhandene Wikiseite mit dem gleichen Namen am Zielort überschrieben (falls vorhanden). Der Standardwert ist "false". Dies bricht die Kopie ab, wenn bereits eine Wikiseite mit dem gleichen Namen am Ziel vorhanden ist. |
Dadurch werden auch alle Unterseiten und Anhänge dieser Wikiseite rekursiv kopiert.
Wikiseite löschen
DELETE {wikipageURI}
Dadurch werden auch alle Unterseiten und Anhänge dieser Wikiseite rekursiv gelöscht.
Metadaten/Eigenschaften einer Wikiseite abrufen
Metadaten/Eigenschaften von Wikiseiten der obersten Ebene abrufen
GET {wikipageURI}/topLevelWikiPages
Wikiseite als HTML rendern
GET {wikipageURI}/html
Seit Codebeamer 7.7.1 enthält der Antworttext text/html statt application/json.
Wiki-Markup für HTML im Kontext der angegebenen Wikiseite rendern
POST /wikipage/{id}/wiki2html
Seit Codebeamer 7.7.1.
Der Anfragetext enthält das zu rendernde Wiki-Markup.
Der Antworttext enthält den gerenderten text/html.
Änderungshistorie einer Wikiseite abrufen
GET {wikipageURI}/history
Gibt zunächst die Änderungshistorie der Metadaten/Eigenschaften der angegebenen Wikiseite in absteigender Reihenfolge zurück (letzte/Kopf).
Metadaten/Eigenschaften einer Wikiseitenrevision abrufen
GET {wikipageURI}/version/{version}
Vorherige Version einer Wikiseite als HTML
GET {wikipageURI}/version/{version}/html
Seit Codebeamer 7.7.1 enthält der Antworttext text/html statt application/json.
Vorherige Version einer Wikiseite wiederherstellen
PUT {wikipageURI}/version/{version}/restore
Berechtigungen einer Wikiseite abrufen
GET {wikipageURI}/permissions
Ähnlich wie für Verzeichnis-/Ordner-/Dateiberechtigungen.
Berechtigungen für eine Wikiseite festlegen
PUT {wikipageURI}/permissions[?options]
Ähnlich wie für Verzeichnis-/Ordner-/Dateiberechtigungen.
Prüfen, ob eine Wikiseite gesperrt ist (vorübergehend)
GET {wikipageURI}/lock
Ähnlich wie die Dateisperre.
Wikiseite sperren (vorübergehend)
PUT {wikipageURI}/lock
Der Anfragetext muss eine JSON-Zeichenfolge enthalten, die definiert, ob gesperrt werden soll.
• Auf unbestimmte Zeit: "hard".
• Oder vorübergehend für: "hh[:mm[:ss]]"; oder als "n {h[our] | m[in[ute]] | s[ec[ond]]}[s]", z.B. "30 min", "6 hours".
Wikiseite entsperren
DELETE {wikipageURI}/lock
Unterseiten einer Wikiseite abrufen
GET {wikipageURI}/children
Anhänge einer Wikiseite abrufen
GET {wikipageURI}/attachments
Einen Wikiseitenanhang nach Namen abrufen
GET {wikipageURI}/attachment/{name}
Anhangsschema abrufen
Neuen Anhang hochladen
POST //attachment
Ein Kommentar ist einfach ein Anhang ohne Inhalt/Daten. Sie benötigen nur eine Singlepart-Anfrage, wobei der Körper die Kommentarspezifikation ist, um einen Kommentar zu erstellen.
Sie benötigen eine Multipart-Anfrage, um einen Anhang hochzuladen:
• Die Anhangsmetadaten müssen sich im Teil mit der Bezeichnung "body" befinden
• Datei/Inhalt/Daten des Anhangs müssen sich in einem zusätzlichen Teil enthalten.
Die Metadaten müssen mindestens "parent" und "name" enthalten, wobei parent der URI der Wikiseite ist, wo der neue Kommentar oder Anhang hinzugefügt werden soll.
Beispiel: Laden Sie die Datei "cube.png" in den zuvor angelegten Ordner "images" des Projekts "Test" mit zusätzlichen/nicht deklarierten Attributen ("camera", "aperture" und "exposition"):
POST https://hostname/cb/rest/file
Authorization: (Data not shown)
Accept: application/json
Accept-Language: en
Content-Type: multipart/form-data; boundary=--MULTIPART-BOUNDARY--
Content-Length: 29278
----MULTIPART-BOUNDARY--
Content-Disposition: form-data; name="body"
Content-type: application/json; charset=utf-8
{
"parent" : "/wikipage/3627",
"name" : "cube.png"
}
----MULTIPART-BOUNDARY--
Content-Disposition: form-data; name="cube.png"; filename="cube.png"
Content-Type: image/png
(Binary data not shown)
----MULTIPART-BOUNDARY----
Mehrere Anhänge einer Wikiseite gleichzeitig hochladen und optional auch das Wikiseiten-Markup ändern, um einige neu angehängte Bilder einzubetten: Sie sollten den Befehl "Wikiseite aktualisieren" verwenden.
Metadaten des Anhangs und/oder des Inhalts aktualisieren.
PUT /attachment
Eine Singlepart-Anfrage ist ausreichend, die nur die Anhangs-URI und die zu aktualisierenden Metadaten oder Eigenschaften enthalten muss, um nur Anhangsmetadaten zu aktualisieren.
Sie benötigen eine Multipart-Anfrage, bei der die Anhangs-URI und die zu aktualisierenden Metadaten oder Eigenschaften in das "body"-Teil und der zu aktualisierende Dateiinhalt als zusätzliches Teil hinzugefügt wird, um Anhangsinhalt zu aktualisieren:
PUT https://hostname/cb/rest/file
Authorization: (Data not shown)
Accept: application/json
Accept-Language: en
Content-Type: multipart/form-data; boundary=--MULTIPART-BOUNDARY--
Content-Length: 29278
----MULTIPART-BOUNDARY--
Content-Disposition: form-data; name="body"
Content-type: application/json; charset=utf-8
{
"uri" : "/attachment/3629",
"status" : "Final"
}
----MULTIPART-BOUNDARY--
Content-Disposition: form-data; name="cube.png"; filename="cube.png"
Content-Type: image/png
(Binary data not shown)
----MULTIPART-BOUNDARY----
Sie können nur "name", "description", "status" und benutzerdefinierte Metadaten/Eigenschaften eines Anhangs ändern. Das Verschieben oder Kopieren von Anhängen wird derzeit nicht unterstützt.
Anhang löschen
Metadaten/Eigenschaften eines bestimmten Anhangs (Revision) abrufen
Inhalt/Daten eines bestimmten Anhangs (Revision) herunterladen
GET /attachment/{id}/content
Änderungshistorie eines Anhangs abrufen
GET /attachment/{id}/history
Dies gibt zunächst die Änderungshistorie der Metadaten/-Eigenschaften und des Inhalts des angegebenen Anhangs in absteigender Reihenfolge zurück (letzte/Kopf).
Metadaten/Eigenschaften einer bestimmten Anhangsrevision abrufen
GET /attachment/{id}/version/{version}
Inhalt/Daten einer bestimmten Anhangsrevision herunterladen
GET /attachment/{id}/version/{version}/content
Vorherige Version eines Anhangs wiederherstellen
PUT /attachment/{id}/version/{version}/restore