api_data_label_delete.md 4.5 KB

数据标签删除接口文档

接口信息

  • 接口路径: /api/data/label/delete
  • 请求方法: POST
  • 接口描述: 删除指定的 DataLabel 节点及其所有关联关系

请求参数

请求体 (JSON)

参数名 类型 必填 说明
id integer DataLabel 节点的ID

请求示例

{
  "id": 82
}

响应格式

成功响应

状态码: 200

响应体:

{
  "code": 200,
  "data": {
    "id": 82,
    "message": "成功删除 DataLabel 节点 (ID: 82)"
  },
  "msg": "删除成功"
}

失败响应

1. 节点ID为空

状态码: 200

响应体:

{
  "code": 500,
  "data": {},
  "msg": {
    "error": "节点ID不能为空"
  }
}

2. 节点ID类型错误

状态码: 200

响应体:

{
  "code": 500,
  "data": {},
  "msg": {
    "error": "节点ID必须为整数"
  }
}

3. 节点不存在

状态码: 200

响应体:

{
  "code": 500,
  "data": {
    "id": 999,
    "message": "DataLabel 节点不存在 (ID: 999)"
  },
  "msg": "DataLabel 节点不存在 (ID: 999)"
}

4. 数据库连接失败

状态码: 200

响应体:

{
  "code": 500,
  "data": {
    "id": 82,
    "message": "无法连接到数据库"
  },
  "msg": "无法连接到数据库"
}

5. 其他错误

状态码: 200

响应体:

{
  "code": 500,
  "data": {},
  "msg": {
    "error": "删除失败: [具体错误信息]"
  }
}

功能说明

删除操作

  1. 参数验证

    • 验证节点ID是否存在
    • 验证节点ID是否为有效整数
  2. 节点检查

    • 检查节点是否存在于数据库中
    • 验证节点是否为 DataLabel 类型
  3. 删除执行

    • 使用 DETACH DELETE 删除节点
    • 同时删除与该节点关联的所有关系
  4. 结果返回

    • 返回删除成功或失败的状态信息

删除的关系类型

该接口会删除 DataLabel 节点的所有关系,包括但不限于:

  • [:LABEL] - 与 DataMetric 的标签关系
  • [:TAG] - 与 data_standard 的标签关系
  • 其他任何与该节点相关的关系

使用示例

cURL 示例

curl -X POST http://your-server/api/data/label/delete \
  -H "Content-Type: application/json" \
  -d '{"id": 82}'

Python 示例

import requests
import json

url = "http://your-server/api/data/label/delete"
data = {"id": 82}

response = requests.post(url, json=data)
result = response.json()

if result['code'] == 200 and 'success' in result.get('msg', ''):
    print(f"删除成功: {result['data']['message']}")
else:
    print(f"删除失败: {result.get('msg', 'Unknown error')}")

JavaScript 示例

fetch('http://your-server/api/data/label/delete', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ id: 82 })
})
  .then(response => response.json())
  .then(data => {
    if (data.code === 200 && data.msg === '删除成功') {
      console.log('删除成功:', data.data.message);
    } else {
      console.error('删除失败:', data.msg);
    }
  })
  .catch(error => {
    console.error('请求失败:', error);
  });

注意事项

  1. 不可逆操作:删除操作是永久性的,无法撤销,请谨慎使用

  2. 关系清理:删除节点时会自动清除所有关联关系,无需手动删除关系

  3. 节点类型限制:该接口只能删除 DataLabel 类型的节点,其他类型的节点不会被删除

  4. ID 格式:节点ID必须是整数类型,字符串或其他类型会被拒绝

  5. 级联影响

    • 删除 DataLabel 节点后,引用该标签的 DataMetric 节点将失去标签关联
    • 建议在删除前检查是否有其他节点引用该标签
  6. 日志记录:所有删除操作都会记录在应用日志中,便于审计和追踪

错误处理

接口内部实现了完整的错误处理机制:

  • 参数验证失败:返回明确的错误提示
  • 节点不存在:返回节点不存在的提示
  • 数据库连接失败:返回连接失败的提示
  • 其他异常:捕获并返回详细的错误信息

所有错误都会记录在日志中,便于问题排查。

相关接口

  • POST /api/data/label/add - 添加数据标签
  • POST /api/data/label/list - 获取数据标签列表
  • POST /api/data/label/detail - 获取数据标签详情
  • POST /api/data/label/update - 更新数据标签

更新历史

  • 2025-01-XX: 初始版本创建