pingcode logo
功能日记

v5.25.0:REST API 重构文档结构


更新内容

  1. 重构文档结构
  2. 为主要资源增加属性说明
  3. 新增全局资源“关注人”
  4. 新增全局资源“工时”
  5. 开放项目属性的管理能力
  6. 限制重复请求

重构文档结构

我们按照 REST API 的使用场景对 API 进行重新整理,整体的结构是这样的:

……
全局
产品管理
	产品
    客户
    工单
    	创建一个工单
        部分更新一个工单
        获取工单列表
        获取工单渠道列表
        获取工单优先级列表
        获取工单解决方案列表
        ……
        (工单操作场景下需要的其他 API)
    需求
    产品配置中心
    	工单配置
        需求配置
项目管理
	项目
    Scrum
    Kanban
    瀑布
    工作项
    	创建一个工作项
        部分更新一个工作项
        获取工作项列表
        ……
        (工单操作场景下需要的其他 API)
    发布
    项目配置中心
    	项目配置
        工作项配置
测试管理
	测试库
    用例
    计划
    测试配置中心
知识管理
	空间
    页面
DevOps 数据集成
	代码
    构建
    交付
……

这样和 PingCode Web 上的功能有一定的对称性,便于使用者在某个场景下快速找到需要的 API。

为主要资源增加属性说明

在点击左侧目录中的产品、客户、工单、需求、项目、工作项、测试库、用例、空间、页面等资源之后,即可在右侧看到这些资源的属性说明。例如产品的属性说明是:

新增全局资源“关注人”

在全局资源中增加“关注人”资源,它将代替原本在工单、需求、工作项、用例、页面等资源上的关注人资源。资源的结构是:

{
    "id"
    "url"
    "type": "user"
    "user": {
        "id"
        "url"
        ……
    }
}

类似于其他全局资源,“关注人”将通过  principal_type  和  principal_id  来限定关注人所属的主体。常用的几个 API:

添加一个关注人
POST /v1/participants
{
	principal_type
    principal_id
    ……
}
获取关注人列表
GET /v1/participants?principal_type=&principal_id=
移除一个关注人
DELETE /v1/participants/{participant_id}?principal_type=&principal_id=

在获取工单、需求、工作项、用例、页面资源时,“关注人”还是会连带返回。

新增全局资源“工时”

在全局资源中增加“工时”资源,它将代替原本在工作项资源内的工时资源。资源的结构是:

{
    "id"
    "url"
    "principal_type": "user"
    "principal": {
        "id"
        "url"
        ……
    }
  	"type"
  	"duration"
  	"report_at"
  	"report_by"
  	"description"
}

和“关注人”一样,它常用的几个 API:

创建一个工时
POST /v1/workloads
部分更新一个工时
PATCH /v1/workloads/{workload_id}
获取工时列表
GET /v1/workloads?principal_type=&principal_id=
删除一个工时
DELETE /v1/workloads/{workload_id}
获取工时类型列表
GET /v1/workload_types

开放项目属性的管理能力

API 如下:

创建一个项目属性
POST /v1/project/project_properties
部分更新一个项目属性
PATCH /v1/project/project_properties/{property_id}
获取属性列表
GET /v1/project/project_properties
向项目中添加一个项目属性
POST /v1/project/projects/{project_id}/project_properties
获取项目中的项目属性列表
GET /v1/project/projects/{project_id}/project_properties
在项目中移除一个项目属性
DELETE /v1/project/projects/{project_id}/project_properties/{property_id}

在一个项目中增加了项目之后,即可通过更新项目的 API 设置这个项目的自定义属性,在查看项目时,自定义属性会在  properties  属性中返回。

限制重复请求

PingCode REST API 启用重复请求限制策略,对单位时间内重复的请求将直接报错处理,避免服务器上那些不必要的计算消耗。

其他

另外 PingCode REST API 还有一些其他优化和缺陷修复,更多功能详见 PingCode REST API 文档