# 数据标签删除接口文档 ## 接口信息 - **接口路径**: `/api/data/label/delete` - **请求方法**: `POST` - **接口描述**: 删除指定的 DataLabel 节点及其所有关联关系 ## 请求参数 ### 请求体 (JSON) | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | integer | 是 | DataLabel 节点的ID | ### 请求示例 ```json { "id": 82 } ``` ## 响应格式 ### 成功响应 **状态码**: 200 **响应体**: ```json { "code": 200, "data": { "id": 82, "message": "成功删除 DataLabel 节点 (ID: 82)" }, "msg": "删除成功" } ``` ### 失败响应 #### 1. 节点ID为空 **状态码**: 200 **响应体**: ```json { "code": 500, "data": {}, "msg": { "error": "节点ID不能为空" } } ``` #### 2. 节点ID类型错误 **状态码**: 200 **响应体**: ```json { "code": 500, "data": {}, "msg": { "error": "节点ID必须为整数" } } ``` #### 3. 节点不存在 **状态码**: 200 **响应体**: ```json { "code": 500, "data": { "id": 999, "message": "DataLabel 节点不存在 (ID: 999)" }, "msg": "DataLabel 节点不存在 (ID: 999)" } ``` #### 4. 数据库连接失败 **状态码**: 200 **响应体**: ```json { "code": 500, "data": { "id": 82, "message": "无法连接到数据库" }, "msg": "无法连接到数据库" } ``` #### 5. 其他错误 **状态码**: 200 **响应体**: ```json { "code": 500, "data": {}, "msg": { "error": "删除失败: [具体错误信息]" } } ``` ## 功能说明 ### 删除操作 1. **参数验证**: - 验证节点ID是否存在 - 验证节点ID是否为有效整数 2. **节点检查**: - 检查节点是否存在于数据库中 - 验证节点是否为 DataLabel 类型 3. **删除执行**: - 使用 `DETACH DELETE` 删除节点 - 同时删除与该节点关联的所有关系 4. **结果返回**: - 返回删除成功或失败的状态信息 ### 删除的关系类型 该接口会删除 DataLabel 节点的所有关系,包括但不限于: - `[:LABEL]` - 与 DataMetric 的标签关系 - `[:TAG]` - 与 data_standard 的标签关系 - 其他任何与该节点相关的关系 ## 使用示例 ### cURL 示例 ```bash curl -X POST http://your-server/api/data/label/delete \ -H "Content-Type: application/json" \ -d '{"id": 82}' ``` ### Python 示例 ```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 示例 ```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: 初始版本创建