为 DataOps 平台的数据指标模块添加了完整的删除功能,包括核心业务逻辑和 RESTful API 接口。
文件: app/core/data_metric/metric_interface.py
新增函数: metric_delete(metric_node_id)
功能特性:
DETACH DELETE 自动删除节点及所有关联关系代码位置: 行 828-893
文件: app/api/data_metric/routes.py
新增路由: POST /api/data_metric/delete
接口特性:
代码位置: 行 328-375
更新文件: app/api/data_metric/routes.py
更新内容: 在导入列表中添加 metric_delete 函数
代码位置: 行 15-20
MATCH (n:DataMetric)
WHERE id(n) = $nodeId
RETURN n
MATCH (n:DataMetric)
WHERE id(n) = $nodeId
DETACH DELETE n
RETURN count(n) as deleted_count
使用 Neo4j 的 DETACH DELETE 语句,自动处理:
| 关系类型 | 方向 | 目标节点 | 说明 |
|---|---|---|---|
| origin | 传出 | DataModel/DataMetric | 指标来源 |
| connection | 传出 | DataMeta | 元数据连接 |
| LABEL | 传出 | DataLabel | 数据标签 |
| child | 双向 | DataMetric | 父子关系 |
POST /api/data_metric/delete
Content-Type: application/json
{
"id": 1378
}
{
"code": 200,
"msg": "删除成功",
"data": {
"id": 1378,
"message": "成功删除数据指标节点 (ID: 1378)"
}
}
{
"code": 500,
"msg": "数据指标节点不存在 (ID: 1378)",
"data": {
"id": 1378,
"message": "数据指标节点不存在 (ID: 1378)"
}
}
| 场景 | 处理方式 | 返回信息 |
|---|---|---|
| 数据库连接失败 | 记录错误日志 | "无法连接到数据库" |
| 节点不存在 | 记录警告日志 | "数据指标节点不存在" |
| 参数缺失 | 参数验证 | "指标ID不能为空" |
| 参数类型错误 | 类型转换验证 | "指标ID必须为整数" |
| 删除异常 | 捕获异常 | "删除失败: [详情]" |
| 级别 | 场景 | 内容模板 |
|---|---|---|
| ERROR | 连接失败 | "无法连接到数据库" |
| WARNING | 节点不存在 | "数据指标节点不存在: ID={id}" |
| INFO | 删除成功 | "成功删除数据指标节点: ID={id}" |
| WARNING | 删除失败 | "删除失败,节点可能已被删除: ID={id}" |
| ERROR | 异常 | "删除数据指标节点失败: {error}" |
# 测试删除存在的节点
curl -X POST http://localhost:5500/api/data_metric/delete \
-H "Content-Type: application/json" \
-d '{"id": 1378}'
# 测试删除不存在的节点
curl -X POST http://localhost:5500/api/data_metric/delete \
-H "Content-Type: application/json" \
-d '{"id": 99999}'
# 测试参数缺失
curl -X POST http://localhost:5500/api/data_metric/delete \
-H "Content-Type: application/json" \
-d '{}'
# 测试无效参数
curl -X POST http://localhost:5500/api/data_metric/delete \
-H "Content-Type: application/json" \
-d '{"id": "invalid"}'
| 文件 | 变更类型 | 说明 |
|---|---|---|
app/core/data_metric/metric_interface.py |
新增 | 添加 metric_delete 函数 |
app/api/data_metric/routes.py |
新增/修改 | 添加 /delete 路由,更新导入 |
docs/api_data_metric_delete.md |
新增 | API 接口完整文档 |
DELETE_FEATURE_SUMMARY.md |
新增 | 功能实现总结文档 |
新增函数: 2个
metric_delete() - 核心业务逻辑data_metric_delete() - API 路由处理新增代码行: 约 130 行
成功为 DataOps 平台的数据指标模块实现了完整的删除功能,包括:
✅ 核心业务逻辑 - 健壮的删除函数,支持节点和关系的完整清理 ✅ RESTful API - 标准化的删除接口,完善的参数验证和错误处理 ✅ 错误处理 - 全面的异常捕获和友好的错误提示 ✅ 日志记录 - 完整的操作日志,便于问题排查 ✅ 文档完善 - 详细的 API 文档和使用说明
该功能已经可以直接使用,满足生产环境要求!🎊