# API数据指标模块

## 简介

API数据指标模块(`app.api.data_metric`)提供了与数据指标相关的所有API接口，包括数据指标的新增、修改、查询、列表展示、图谱生成等功能。该模块作为前端与核心业务逻辑之间的桥梁，负责接收HTTP请求，调用相应的核心业务逻辑函数，并将结果返回给前端。

## 主要功能

1. **数据指标管理**：提供新增、更新、查询数据指标的接口
2. **数据指标列表**：支持分页、筛选的数据指标列表展示
3. **数据指标图谱**：生成不同类型的数据指标关系图谱，包括血缘关系、影响关系等
4. **代码生成**：基于指标规则描述和映射关系生成指标计算代码
5. **关系管理**：处理数据指标与其他实体（如模型、元数据、标签）之间的关系

## API接口列表

| 接口路径 | 方法 | 描述 |
|---------|------|------|
| `/data/metric/add` | POST | 新增数据指标 |
| `/data/metric/update` | POST | 更新数据指标 |
| `/data/metric/detail` | POST | 获取数据指标详情 |
| `/data/metric/list` | POST | 获取数据指标列表 |
| `/data/metric/code` | POST | 生成指标计算代码 |
| `/data/metric/relation` | POST | 处理数据指标血缘关系 |
| `/data/metric/graph/all` | POST | 获取数据指标图谱 |
| `/data/metric/list/graph` | POST | 获取数据指标列表图谱 |

## 使用示例

### 1. 新增数据指标

```json
POST /data/metric/add
Content-Type: application/json

{
  "name": "月活用户数",
  "category": "用户指标",
  "describe": "每月登录系统的独立用户数量",
  "childrenId": [],
  "tag": 123,
  "id_list": [
    {
      "id": 456,
      "type": "model",
      "metaData": [789, 790]
    }
  ]
}
```

### 2. 查询数据指标列表

```json
POST /data/metric/list
Content-Type: application/json

{
  "current": 1,
  "size": 10,
  "name": "用户",
  "category": "用户指标"
}
```

### 3. 生成指标图谱

```json
POST /data/metric/graph/all
Content-Type: application/json

{
  "id": 123,
  "type": "all",
  "meta": true
}
```

## 依赖关系

本模块主要依赖以下组件：

1. **core.data_metric**：核心业务逻辑模块，包含数据指标相关的所有核心功能
2. **routes.graph_routes**：图数据库连接和相关工具
3. **DataOps_function.llm_solve**：代码生成相关功能
4. **DataOps_function.meta_data_function**：元数据处理功能
5. **model.result**：统一的响应结果模型

## 错误处理

所有API接口都包含统一的错误处理机制。当发生异常时，将返回包含错误信息的JSON响应：

```json
{
  "code": -1,
  "message": "操作失败",
  "data": {},
  "error": {
    "error": "发生的具体错误信息"
  }
}
```

## 代码结构

- **__init__.py**：定义Blueprint和路由导入
- **routes.py**：包含所有API路由处理函数

## 维护者

数据平台开发团队 