## 3 评价服务接口文档 SimOne Web Evaluation Server ### 3.1 测试集接口 #### 3.1.1 获取分页测试集 **Path:** /api-evaluation/suites **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | page | query | 当前页码 | No | number | | pageSize | query | 每页数量 | No | number | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [SuiteResponse](#suiteresponse) |
#### 3.1.2 创建测试集 **Path:** /api-evaluation/suites **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | suite | body | 包含id,name等测试集信息 | Yes | { **"suite"**: [Suite](#suite) } | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Suite](#suite) |

#### 3.1.3 获取单个测试集 **Path:** /api-evaluation/suites/{id} **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | id | path | 测试集id | Yes | string | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Suite](#suite) |
#### 3.1.4 更新单个测试集 **Path:** /api-evaluation/suites/{id} **Method:** PUT **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | id | path | 测试集id | Yes | string | | data | body | 需要更新的测试集信息 | Yes | { **"data"**: [Suite](#suite)} | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Suite](#suite) |

#### 3.1.5 批量删除测试集 **Path:** /api-evaluation/suites/remove **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | ids | body | 测试集id列表 | Yes | { **"ids"**: [ string ] } | ##### 返回数据 | Code | 说明 | | ---- | ----------- | | 204 | No content |
### 3.2 任务接口 #### 3.2.1 获取指定测试集下的任务列表 **Path:** /api-evaluation/tasks **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | suite | query | 测试集id | Yes | string | | page | query | 当前页码 | No | number | | pageSize | query | 每页数量 | No | number | | sort | query | 排序类型 `"time"`\|`"score"` | No | string | | order | query | 升降序 `"ASC"` \| `"DESC"` | No | string | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [TaskResponse](#taskresponse) |
#### 3.2.2 创建任务 **Path:** /api-evaluation/tasks **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | task | body | 包含id,name等任务信息 | Yes | { **"task"**: [Task](#task) } | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Task](#task) |

#### 3.2.3 获取单个任务详情 **Path:** /api-evaluation/tasks/{id} **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Task](#task) |
#### 3.2.4 更新单个任务 **Path:** /api-evaluation/tasks/{id} **Method:** PUT **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | | data | body | 需要更新的任务信息 | Yes | { **"data"**: [Task](#task) } | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Task](#task) |

#### 3.2.5 批量删除任务 **Path:** /api-evaluation/tasks/remove **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | ids | body | 任务id列表 | Yes | { **"ids"**: [ string ] } | ##### 返回数据 | Code | 说明 | | ---- | ----------- | | 204 | No content |
### 3.3 评价预设接口 #### 3.3.1 获取所有预设 **Path:** /api-evaluation/presets/all **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | type | query | 预设类型 | No | string | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [PresetsResponse](#presetsresponse) |

#### 3.3.2 获取分页预设 **Path:** /api-evaluation/presets **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | page | query | 当前页码 | No | number | | pageSize | query | 每页数量 | No | number | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [PresetsResponse](#presetsresponse) |
#### 3.3.3 创建一个预设 **Path:** /api-evaluation/presets **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | preset | body | 包含name,data等预设信息 | Yes | [Preset](#preset) | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Preset](#preset) |

#### 3.3.4 获取单个预设 **Path:** /api-evaluation/presets/{id} **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | id | path | 预设id | Yes | number | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [PresetResponse](#presetresponse) |
#### 3.3.5 更新单个预设 **Path:** /api-evaluation/presets/{id} **Method:** PUT **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | id | path | 预设id | Yes | number | | data | body | 要更新的预设信息对象 | Yes | [Preset](#preset) | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Preset](#preset) |
#### 3.3.6 删除单个预设 **Path:** /api-evaluation/presets/{id} **Method:** DELETE **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | id | path | 预设id | Yes | number | ##### 返回数据 | Code | 说明 | | ---- | ----------- | | 204 | No content |

#### 3.3.7 克隆单个预设 **Path:** /api-evaluation/presets/clone **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | id | body | 预设id | Yes | number | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Preset](#preset) |

#### 3.3.8 导入单个预设 **Path:** /api-evaluation/presets/import **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | preset | body | 要更新的预设信息 | Yes | [Preset](#preset) | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [PresetImportResponse](#presetimportresponse) |

#### 3.3.9 判断预设名是否重复 **Path:** /api-evaluation/presets/isrepeat **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | preset | body | 预设信息 | No | { **"name"**: string, **"type?"**: string, **"id?"**: string } | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | { **"isNameRepeat"**: boolean; **"uniqueName"**: string } |
### 3.4 评价报告接口 #### 3.4.1 创建评价报告 **Path:** /api-evaluation/evaluations **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | evaluation | body | 评价报告信息 | Yes | [Evaluation](#evaluation) | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Evaluation](#evaluation) |
#### 3.4.2 获取单个评价报告 **Path:** /api-evaluation/evaluations **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | taskId | query | 任务id,任务id和测试集id只能传一个 | No | string | | suiteId | query | 测试集id | No | string | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | [Evaluation](#evaluation) |

#### 3.4.3 批量获取评价报告状态 **Path:** /api-evaluation/evaluations/status **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | taskIds | query | 任务id字符串,taskIds和suiteId只能传一个 | No | string | | suiteIds | query | 测试集id字符串 | No | string | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | object |

#### 3.4.4 删除单个评价报告 **Path:** /api-evaluation/evaluations/{id} **Method:** DELETE **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | id | path | 报告id | Yes | string | ##### 返回数据 | Code | 说明 | | ---- | ----------- | | 204 | No content |

#### 3.4.5 触发规控评价 **Path:** /api-evaluation/evaluations/evaluate **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 参数名称 | 传参格式 | 说明 | 是否必填 | 类型 | | ---- | ---------- | ----------- | -------- | ------ | | config | body | 包含测试集id和预设id | Yes | { suiteId: string; presetId: number } | ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | object |

#### 3.4.6 查看评价服务是否正常 **Path:** /api/health **Method:** GET **Headers:**[Headers](#headers) ##### 返回数据 | Code | 说明 | 类型 | | ---- | ----------- | ------ | | 200 | OK | { **"code"**: number, **"data"**: { **"message"**: string } } |

### 通用请求头 #### Headers | 参数名称 | 类型 | 说明 | 是否必填 | | ------------- | ------ | ------------------- | -------- | | Authorization | string | 用于权限验证的token | Yes | ### 相关类型 #### 3.1 测试集接口相关类型 ##### Suite 测试集 | 参数名称 | 类型 | 说明 | 是否必填 | | ---- | ---- | ----------- | -------- | | id | string | 测试集id | Yes | | name | string | 测试集名称 | Yes | | withEvaluation | boolean | 是否能评价 | Yes | | presetId | number | 当前预设 | No | | algorithmName | string | 当前算法名称 | No | | algorithmVersion | string | 当前算法版本 | No | | startTime | number | 测试集开始时间 | Yes | | endTime | number | 测试集结束时间 | No | ##### SuiteResponse 测试集响应 | 参数名称 | 类型 | 说明 | 是否必填 | | ---- | ---- | ----------- | -------- | | total | number | 总数 | Yes | | suites | [ [Suite](#suite) ] | 测试集列表 | Yes |
#### 3.2 任务接口相关类型 ##### Task 任务 | 参数名称 | 类型 | 说明 | 是否必填 | | ---- | ---- | ----------- | -------- | | id | string | 任务id | Yes | | name | string | 任务名称 | Yes | | suiteId | string | 所属测试集id | Yes | | map | string | 地图id | No | | mapName | string | 地图名 | No | | vehicle | string | 主车id | No | | controller | string | 控制器id | No | | algorithmName | string | 算法名称 | No | | algorithmVersion | string | 算法版本 | No | | presetId | number | 当前预设id | No | | startTime | number | 任务开始时间 | Yes | | endTime | number | 任务结束时间 | No | ##### TaskResponse 任务响应 | 参数名称 | 类型 | 说明 | 是否必填 | | ---- | ---- | ----------- | -------- | | total | number | 总数 | Yes | | tasks | [ [Task](#task) ] | 任务列表 | Yes |
#### 3.3 评价预设接口相关类型 ##### Preset 评价预设 | 参数名称 | 类型 | 说明 | 是否必填 | | ---- | ---- | ----------- | -------- | | name | string | 预设名称 | Yes | | type | string | 预设类型 | No | | data | [ object ] | 预设数据 | Yes | ##### PresetResponse 评价预设响应 | 参数名称 | 类型 | 说明 | 是否必填 | | ---- | ---- | ----------- | -------- | | code | number | 状态码 | Yes | | data | [Preset](#preset) | 预设数据 | Yes | ##### PresetsResponse 评价预设集响应 | 参数名称 | 类型 | 说明 | 是否必填 | | ---- | ---- | ----------- | -------- | | code | number | 状态码 | Yes | | data | { presets: [ [Preset](#preset) ] , total: number } | 预设数据 | Yes | ##### PresetImportResponse 评价预设导入响应 | 参数名称 | 类型 | 说明 | 是否必填 | | ---- | ---- | ----------- | -------- | | code | number | 状态码 | Yes | | data | { reason: string } | 失败原因 | Yes |
#### 3.4 评价报告接口相关类型 ##### Evaluation 评价报告 | 参数名称 | 类型 | 说明 | 是否必填 | | ---- | ---- | ----------- | -------- | | name | string | 报告名称 | Yes | | type | string | 报告枚举类型:`"task"`, `"suite"` | Yes | | status | string | 报告状态 | Yes | | suiteId | string | 测试集id | Yes | | taskId | string | 任务id | No | | presetId | number | 预设id | Yes | | presetName | string | 预设名称 | No | | presetVersionId | number | 预设版本id | Yes | | score | number | 评价得分 | No | | data | object | 报告数据 | Yes |