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 
GET {wikipageURI}
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 
GET /attachment/schema
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 
DELETE /attachment/{id}
Metadaten/Eigenschaften eines bestimmten Anhangs (Revision) abrufen 
GET /attachment/{id}
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
War dies hilfreich?