v5.17.0:REST API 开放空间和页面资源
更新内容
- 开放空间资源
- 开放页面资源
- 开放页面版本资源
- 完善团队资源的写入能力
开放空间资源
开放知识库子产品内的空间资源:
创建一个空间
POST /v1/wiki/spaces
部分更新一个空间
PATCH /v1/wiki/spaces/{space_id}
获取一个空间
GET /v1/wiki/spaces/{space_id}
获取空间列表
GET /v1/wiki/spaces
删除一个空间
DELETE /v1/wiki/spaces/{space_id}
需要特殊提醒的是,不能使用企业令牌创建和修改个人空间,而个人令牌不受这个限制,个人令牌完全根据个人在 PingCode 内部的权限而定;两种令牌都可以查看个人空间。另外,在创建团队空间时,需同时指定该空间所属的团队,其余注意事项可参见 REST API 文档。除一些特殊属性之外,空间的属性结构与项目、产品、测试库的属性结构保持一致。
{
"id": "642fd641209b56920a6c6e5f",
"url": "https://rest_api_root/v1/wiki/spaces/642fd641209b56920a6c6e5f",
"identifier": "GROUP",
"name": "团队空间",
"scope_type": "user_group",
"visibility": "private",
"color": "#FB7894",
"description": "团队空间所属一个团队,只能添加所属团队内的成员。",
"members": [],
"created_at": 1583290300,
"created_by": {
...
},
"updated_at": 1583290300,
"updated_by": {
...
},
"is_archived": 0,
"is_deleted": 0
}
开放页面资源
开放知识库子产品内的页面资源(只开放了文档类型的页面写入能力):
创建一个页面
POST /v1/wiki/pages
部分更新一个页面
PATCH /v1/wiki/pages/{page_id}
更新一个文档正文
PUT /v1/wiki/pages/{page_id}/content
获取一个页面
GET /v1/wiki/pages/{page_id}
获取一个文档正文
GET /v1/wiki/pages/{page_id}/content?version_id=
获取页面列表
GET /v1/wiki/pages?space_id=
删除一个页面
DELETE /v1/wiki/pages/{page_id}
值得注意的是,页面和页面正文是分离的两个资源。但是在创建一个页面的时候,可以指定页面的正文,这样是便于通过 REST API 导入外部数据。第二个需要注意的是,通过 REST API 操作页面时,不存在草稿状态,即创建、更新即发布一个新的页面版本,因此使用时务必谨慎。还有一个需要注意的是,获取页面列表时必须要指定空间 id,也就是一次只能获取一个空间下的页面,不支持通过 REST API 遍历所有的页面。最后一个需要注意的是,在获取文档正文和更新文档正文时,均可以指定文档格式为: text , markdown 和 html ,但是即便使用相同的格式获取了内容,再重新更新回去也不能保证页面上的样式完全不变,因为这三种格式均为转译过的格式,与 PingCode 文档里的格式已经相差甚远,因此不建议通过 REST API 对复杂页面进行反复编辑,还是建议使用 PingCode Wiki 来操作。除一些特殊属性之外,页面的属性结构与需求、工单、工作项、用例基本一致。
{
"id": "63e1bf51760505c8795ebccc",
"url": "https://rest_api_root/v1/wiki/pages/63e1bf51760505c8795ebccc",
"space": {
……
},
"name": "示例页面",
"parent": {
……
},
"type": "document",
"icon": "file-fill",
"readings": 0,
"published_at": 1675738962,
"published_by": {
……
},
"participants": [……],
"created_at": 1675738962,
"created_by": {
……
},
"updated_at": 1675738962,
"updated_by": {
……
},
"is_archived": 0,
"is_deleted": 0
}
在开放页面资源时,我们同时在全局的”评论“、”附件“、”关联“中支持了页面。也就是可以全局的方式来为创建评论、上传附件、关联页面等。
开放页面版本
开放页面版本资源:
获取一个页面版本
GET /v1/wiki/pages/{page_id}/versions/{version_id}
获取页面版本列表
GET /v1/wiki/pages/{page_id}/versions
恢复指定页面版本
POST /v1/wiki/pages/{page_id}/versions/{version_id}/restore
可以通过获取页面版本列表,然后查看这个版本正文,再恢复页面到指定版本的顺序来回滚被改坏的文档。
完善团队资源的写入能力
完善了团队资源的写入能力:
创建一个团队
POST /v1/directory/groups
部分更新一个团队
PATCH /v1/directory/groups/{group_id}
添加一个团队成员
POST /v1/directory/groups/{group_id}/members
获取团队成员列表
GET /v1/directory/groups/{group_id}/members
移除一个团队成员
DELETE /v1/directory/groups/{group_id}/members/{member_id}
其他变化
- 我们同时开放了项目、产品、测试库的”可见性“属性
- 工作项列表支持通过标签过滤
- 执行用例支持通过模块过滤
- 在工作项的引用数据中开放了它的”自定义属性“,即在”关联“场景下,即可拿到工作项的自定义属性。
- 获取执行用例的结果记录和获取测试用例的执行历史
- 创建工单时支持指定负责人和优先级
- 缺陷修复
更多功能,详见 PingCode REST API 文档