版本管理
提供制品目录、制品文件管理(制品可能是jar、tar、war包等各种类类型)、需求管理、版本备份、版本发布、版本回退的管理功能。
需求管理的表设计
表名: requirement
字段名 | 别名 | 数据类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|
ID | id | BIGINT | 20 | 是 | 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 | 是 | 版本号 |
归属应用 | app_id | BIGINT | 20 | 是 | 归属应用 |
建表语句
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
字段名 | 别名 | 数据类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|
ID | id | BIGINT | 20 | 是 | 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 | 是 | 备份、发布、回退 |
建表语句
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
字段名 | 别名 | 数据类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|
ID | id | BIGINT | 20 | 是 | 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 | 是 | 文件路径 |
建表语句:
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 }
- 状态码: