Wiki 页面
自 Codebeamer 7.4 版本起,还可以通过 REST API 管理 Wiki 页面。
每个 Codebeamer 项目还有一个 Wiki,这是一个 Wiki 页面树,其中根页面是项目的主页:"{projectURI}/wikipage"。
可以在项目的 Wiki 中添加、更新、移动页面和删除页面,但不能删除或移动项目主页本身 (仅允许更新)。
Wiki 页面具有以下形式的 URI:"/wikipage/{id}" 或 "{projectURI}/wikipage/{name}",其中 {id} 为内部唯一 Wiki 页面 ID/编号,{name} 为 Wiki 页面名称,该名称仅在项目内是唯一的。
Wiki 页面的内容通过 Wiki 标记定义。可通过特殊标记将图像嵌入到 Wiki 页面中,其中图像可以是 Wiki 页面的文件或附件。
获取 Wiki 页面架构
GET /wikipage/schema
可通过指定其他元数据特性 (请参阅
实体元数据) 来扩展基本 Wiki 页面架构。声明的此类特性也将显示在
Codebeamer Web GUI 中。
但是,也可以为 Wiki 页面设置附加/未声明的元数据/特性。此类特性仅对用于定义这些特性的页面可见。
创建新 Wiki 页面
POST /wikipage
要创建具有附件的 Wiki 页面,需要多部分请求:
• Wiki 页面定义必须位于名为 "body" 的部分中。
• 每个附件必须为附加部分。
元数据必须至少包含 "project"、"parent"、"name" 和 "markup",其中名称在指定项目中必须唯一。例如:创建一个新的 Wiki 页面作为项目主页的子项,并带有一个图像附件:
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----
更新 Wiki 页面
PUT /wikipage
要仅更新 Wiki 页面元数据或标记,只需单部分请求即可。要添加或更新附件,则需要多部分请求:
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----
只能更改 Wiki 页面的 "name"、"description"、"status"、"markup" 和自定义元数据/特性。要将 Wiki 页面移动到另一项目或位置,必须使用 moveTo 命令 (请参阅下文)。
将 Wiki 页面移至其他项目或位置
PUT {wikipageURI}/{id}/moveTo/{wikipageURI}[?options]
选项 | 类型 | 必需 | 含义 |
|---|
overwrite | 布尔型 | 否 | 如果设置为 true,则将覆盖目标处的现有同名 Wiki 页面 (如有)。默认值为 false,如果目标位置已存在同名 Wiki 页面,则将中止移动。 |
将 Wiki 页面复制到其他项目或位置
POST {wikipageURI}/copyTo/{wikipageURI}[?options]
选项 | 类型 | 必需 | 含义 |
|---|
overwrite | 布尔型 | 否 | 如果设置为 true,则将覆盖目标处的现有同名 Wiki 页面 (如有)。默认值为 false,如果目标位置已存在同名 Wiki 页面,则将中止复制。 |
此操作还将以递归方式复制此 Wiki 页面的所有子页面和附件。
删除 Wiki 页面
DELETE {wikipageURI}
这将以递归方式删除此 Wiki 页面的所有子页面和附件。
获取 Wiki 页面的元数据/特性
获取顶层 Wiki 页面的元数据/特性
GET {wikipageURI}/topLevelWikiPages
将 Wiki 页面呈现为 HTML
GET {wikipageURI}/html
自 Codebeamer 7.7.1 版本起支持。响应正文包含 text/html,而不包含 application/json。
将 Wiki 标记呈现在指定 Wiki 页面上下文中的 HTML
POST /wikipage/{id}/wiki2html
自 Codebeamer 7.7.1 版本起支持。
请求正文包含要呈现的 Wiki 标记。
响应正文包含呈现的 text/html。
获取 Wiki 页面的变更历史记录
GET {wikipageURI}/history
这将首先按降序 (最后一个/默认 HEAD) 修订版本返回指定 Wiki 页面元数据/特性的变更历史记录。
获取 Wiki 页面修订版本的元数据/特性
GET {wikipageURI}/version/{version}
将 Wiki 页面的先前版本呈现为 HTML
GET {wikipageURI}/version/{version}/html
自 Codebeamer 7.7.1 版本起支持。响应正文包含 text/html,而不包含 application/json。
恢复 Wiki 页面的先前版本
PUT {wikipageURI}/version/{version}/restore
获取 Wiki 页面的权限
GET {wikipageURI}/permissions
类似于目录/文件夹/文件权限。
设置 Wiki 页面的权限
PUT {wikipageURI}/permissions[?options]
类似于目录/文件夹/文件权限。
检查 Wiki 页面是否已锁定 (暂时)
GET {wikipageURI}/lock
与文件锁定类似。
锁定 Wiki 页面 (暂时)
PUT {wikipageURI}/lock
请求正文必须包含 JSON 字符串,旨在定义是否锁定文件。
• 无限期:"hard"。
• 或暂时锁定,锁定时长:"hh[:mm[:ss]]";或 "n {h[our] | m[in[ute]] | s[ec[ond]]}[s]",例如 "30 min" 或 "6 hours" 等。
解锁 Wiki 页面
DELETE {wikipageURI}/lock
获取 Wiki 页面的子页面
GET {wikipageURI}/children
获取 Wiki 页面的附件
GET {wikipageURI}/attachments
按名称获取 Wiki 页面附件
GET {wikipageURI}/attachment/{name}
获取附件架构
上传新附件
POST //attachment
备注就是不含内容/数据的附件。要创建备注,只需单部分请求,其中正文为备注规范。
要上传附件,则需要多部分请求。
• 附件元数据必须位于名为 "body" 的部分中
• 附件的文件/内容/数据必须在其他部分中。
元数据必须至少包含 "parent" 和 "name",其中 parent 是 Wiki 页面的 URI,用于添加新备注或附件的位置。
例如:将文件 "cube.png" 连同附加/未声明属性 ("camera"、"aperture" 和 "exposition") 一起上传到先前为 "Test" 项目创建的 "images" 文件夹中:
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----
要一次上传多个 Wiki 页面附件,并选择性地修改 Wiki 页面标记以嵌入一些新附加的图像,应使用“更新 Wiki 页面”命令。
更新附件元数据和/或内容
PUT /attachment
要仅更新附件元数据,单部分请求就足够了,只需在其中包含要更新的附件 URI 和元数据/特性即可:
要更新附件内容,需要多部分请求,其中要更新的附件 URI 和元数据/特性会被添加到 "body" 部分中,而要更新的文件内容会被添加为附加部分:
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----
只能更改附件的 "name"、"description"、"status" 和自定义元数据/特性。当前不支持移动或复制附件。
删除附件
获取特定附件 (修订版本) 的元数据/特性
下载特定附件 (修订版本) 的内容/数据
GET /attachment/{id}/content
获取附件的变更历史记录
GET /attachment/{id}/history
这会首先按降序 (最后一个/默认 HEAD) 修订版本返回指定附件元数据/特性的变更历史记录。
获取特定附件修订版本的元数据/特性
GET /attachment/{id}/version/{version}
下载特定附件修订版本的内容/数据
GET /attachment/{id}/version/{version}/content
恢复附件的先前版本
PUT /attachment/{id}/version/{version}/restore