Skip to content

版本管理

提供制品目录、制品文件管理(制品可能是jar、tar、war包等各种类类型)、需求管理、版本备份、版本发布、版本回退的管理功能。

需求管理的表设计

表名: requirement

字段名别名数据类型长度是否必填备注
IDidBIGINT20ID(物理主键)
名称nameVARCHAR255名称
编码codeVARCHAR32编码(业务主键)
创建人create_byVARCHAR32创建人
创建时间create_timeDATETIME创建时间
更新人update_byVARCHAR32更新人
更新时间update_timeDATETIME更新时间
备注remarkVARCHAR255备注
需求文件类型file_typeVARCHAR16文件类型
需求文件路径file_pathVARCHAR255文件路径
版本号version_codeINT11版本号
归属应用app_idBIGINT20归属应用

建表语句

sql
CREATE TABLE requirement (
    id BIGINT(20) PRIMARY KEY,                             -- ID(物理主键)
    name VARCHAR(255),                                    -- 名称
    code VARCHAR(32),                                     -- 编码(业务主键)
    create_by VARCHAR(32),                                -- 创建人
    create_time DATETIME,                                 -- 创建时间
    update_by VARCHAR(32),                                -- 更新人
    update_time DATETIME,                                 -- 更新时间
    remark VARCHAR(255),                                  -- 备注
    file_type VARCHAR(16),                    -- 文件名后缀
    file_path VARCHAR(255),                   -- 文件路径
    version_code INT(11),                                 -- 版本号,界面展示/100
    app_id BIGINT(20)                                     -- 归属应用
);

版本管理的表设计

表名: version

字段名别名数据类型长度是否必填备注
IDidBIGINT20ID(物理主键)
名称nameVARCHAR255名称
编码codeVARCHAR32编码(业务主键)
创建人create_byVARCHAR32创建人
创建时间create_timeDATETIME创建时间
更新人update_byVARCHAR32更新人
更新时间update_timeDATETIME更新时间
备注remarkVARCHAR255备注
文件类型file_typeVARCHAR16文件类型
文件路径file_pathVARCHAR255文件路径
归属需求requirement_idBIGINT20关联的需求
归属应用app_idBIGINT20归属应用
用途类型purpose_typeINT4备份、发布、回退

建表语句

sql
CREATE TABLE version (
    id BIGINT(20) PRIMARY KEY,                             -- ID(物理主键)
    name VARCHAR(255),                                    -- 名称
    code VARCHAR(32),                                     -- 编码(业务主键)
    create_by VARCHAR(32),                                -- 创建人
    create_time DATETIME,                                 -- 创建时间
    update_by VARCHAR(32),                                -- 更新人
    update_time DATETIME,                                 -- 更新时间
    remark VARCHAR(255),                                  -- 备注
    file_type VARCHAR(16),                        -- 文件后缀
    file_path VARCHAR(255),                       -- 文件路径
    requirement_id BIGINT(20),                            -- 关联的需求
    app_id BIGINT(20),                                   -- 归属应用
    purpose_type INT(4)                  -- 1-backup2-release 3-rollback
);

需求管理的接口设计

1.1 创建需求

  • URL: /api/requirements
  • 方法: POST
  • 请求体:
    json
    {
      "name": "需求名称",
      "code": "urc_req_241010_123456",
      "create_by": "创建人",
      "file_type": "md",
      "file_path": "/path/to/requirement",
      "version_code": 1,
      "app_id": 1234567890
    }
  • 响应:
    • 状态码: 201 Created
    • 响应体:
    json
    {
      "code": 201,
      "msg": "创建成功",
      "data": {
        "id": 1,
        "name": "需求名称",
        "code": "urc_req_241010_123456",
        ...
      }
    }

1.2 获取需求列表

  • URL: /api/requirements
  • 方法: GET
  • 响应:
    • 状态码: 200 OK
    • 响应体:
    json
    {
      "code": 200,
      "msg": "获取成功",
      "data": [
        {
          "id": 1,
          "name": "需求名称",
          ...
        }
      ]
    }

1.3 获取单个需求

  • URL: /api/requirements/{id}
  • 方法: GET
  • 响应:
    • 状态码: 200 OK
    • 响应体:
    json
    {
      "code": 200,
      "msg": "获取成功",
      "data": {
        "id": 1,
        "name": "需求名称",
        ...
      }
    }

1.4 更新需求

  • URL: /api/requirements/{id}
  • 方法: PUT
  • 请求体:
    json
    {
      "name": "更新后的名称",
      "code": "urc_req_241010_123456",
      ...
    }
  • 响应:
    • 状态码: 200 OK
    • 响应体:
    json
    {
      "code": 200,
      "msg": "更新成功",
      "data": {
        "id": 1,
        "name": "更新后的名称",
        ...
      }
    }

1.5 删除需求

  • URL: /api/requirements/{id}
  • 方法: DELETE
  • 响应:
    • 状态码: 204 No Content
    • 响应体:
    json
    {
      "code": 204,
      "msg": "删除成功",
      "data": null
    }

版本管理的接口设计

2.1 创建版本

  • URL: /api/versions
  • 方法: POST
  • 请求体:
    json
    {
      "name": "版本名称",
      "code": "urc_version_241010_123456",
      "create_by": "创建人",
      "file_type": "sql",
      "file_path": "/path/to/version",
      "requirement_id": 1,
      "app_id": 1234567890,
      "purpose_type": 1
    }
  • 响应:
    • 状态码: 201 Created
    • 响应体:
    json
    {
      "code": 201,
      "msg": "创建成功",
      "data": {
        "id": 1,
        "name": "版本名称",
        ...
      }
    }

2.2 获取版本列表

  • URL: /api/versions
  • 方法: GET
  • 响应:
    • 状态码: 200 OK
    • 响应体:
    json
    {
      "code": 200,
      "msg": "获取成功",
      "data": [
        {
          "id": 1,
          "name": "版本名称",
          ...
        }
      ]
    }

2.3 获取单个版本

  • URL: /api/versions/{id}
  • 方法: GET
  • 响应:
    • 状态码: 200 OK
    • 响应体:
    json
    {
      "code": 200,
      "msg": "获取成功",
      "data": {
        "id": 1,
        "name": "版本名称",
        ...
      }
    }

2.4 更新版本

  • URL: /api/versions/{id}
  • 方法: PUT
  • 请求体:
    json
    {
      "name": "更新后的版本名称",
      "code": "urc_version_241010_123456",
      ...
    }
  • 响应:
    • 状态码: 200 OK
    • 响应体:
    json
    {
      "code": 200,
      "msg": "更新成功",
      "data": {
        "id": 1,
        "name": "更新后的版本名称",
        ...
      }
    }

2.5 删除版本

  • URL: /api/versions/{id}
  • 方法: DELETE
  • 响应:
    • 状态码: 204 No Content
    • 响应体:
    json
    {
      "code": 204,
      "msg": "删除成功",
      "data": null
    }

制品管理的表设计

表名 artifact

字段名别名数据类型长度是否必填备注
IDidBIGINT20ID(物理主键)
名称nameVARCHAR255名称
编码codeVARCHAR32编码(业务主键)
创建人create_byVARCHAR32创建人
创建时间create_timeDATETIME创建时间
更新人update_byVARCHAR32更新人
更新时间update_timeDATETIME更新时间
备注remarkVARCHAR255备注
归属应用app_idBIGINT20归属应用
文件类型file_typeVARCHAR16制品类型
文件路径file_pathVARCHAR255文件路径

建表语句:

sql
CREATE TABLE artifact (
    id BIGINT(20) PRIMARY KEY,                             -- ID(物理主键)
    name VARCHAR(255),                                    -- 名称
    code VARCHAR(32),                                     -- 编码(业务主键)
    create_by VARCHAR(32),                                -- 创建人
    create_time DATETIME,                                 -- 创建时间
    update_by VARCHAR(32),                                -- 更新人
    update_time DATETIME,                                 -- 更新时间
    remark VARCHAR(255),                                  -- 备注
    app_id BIGINT(20),                                  -- 归属应用                         
    file_type VARCHAR(16),                            -- 制品类型
    file_path VARCHAR(255)                       -- 文件路径
);

制品管理的接口设计

1. 创建制品文件

  • URL: /api/artifact
  • 方法: POST
  • 请求体:
    json
    {
      "name": "文件名称",
      "code": "urc_file_241010_123456",
      "create_by": "创建人",
      "app_id": 1234567890,
      "file_type": "tar",
      "file_path": "/path/to/artifact/file"
    }
  • 响应:
    • 状态码: 201 Created
    • 响应体:
    json
    {
      "code": 201,
      "msg": "创建成功",
      "data": {
        "id": 1,
        "name": "文件名称",
        ...
      }
    }

2. 获取制品文件列表

  • URL: /api/artifact
  • 方法: GET
  • 响应:
    • 状态码: 200 OK
    • 响应体:
    json
    {
      "code": 200,
      "msg": "获取成功",
      "data": [
        {
          "id": 1,
          "name": "文件名称",
          ...
        }
      ]
    }

3. 获取单个制品文件

  • URL: /api/artifact/{id}
  • 方法: GET
  • 响应:
    • 状态码: 200 OK
    • 响应体:
    json
    {
      "code": 200,
      "msg": "获取成功",
      "data": {
        "id": 1,
        "name": "文件名称",
        ...
      }
    }

4. 更新制品文件

  • URL: /api/artifact/{id}
  • 方法: PUT
  • 请求体:
    json
    {
      "name": "更新后的文件名称",
      "code": "urc_file_241010_123456",
      "update_by": "更新人",
      "file_type": "jar",
      "file_path": "/path/to/updated/artifact/file"
    }
  • 响应:
    • 状态码: 200 OK
    • 响应体:
    json
    {
      "code": 200,
      "msg": "更新成功",
      "data": {
        "id": 1,
        "name": "更新后的文件名称",
        ...
      }
    }

5. 删除制品文件

  • URL: /api/artifact/{id}
  • 方法: DELETE
  • 响应:
    • 状态码: 204 No Content
    • 响应体:
    json
    {
      "code": 204,
      "msg": "删除成功",
      "data": null
    }