|
|
以下是您当前 Flask 应用中已实现的两个主要接口的 **API 接口文档**,采用标准 RESTful 风格描述。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🌐 接口文档
|
|
|
|
|
|
### 1. 更新配置 `/config/update`
|
|
|
|
|
|
#### ✅ 方法
|
|
|
- `GET`
|
|
|
|
|
|
#### 📦 描述
|
|
|
- 重新加载所有配置文件(相机、裁剪、模板等),用于刷新服务端配置。
|
|
|
|
|
|
#### 📤 响应示例
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"message": "Hello, this service config update!",
|
|
|
"status": "OK"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2. 添加/更新模板配置 `/api/addTemplate`
|
|
|
|
|
|
#### ✅ 方法
|
|
|
- `POST`
|
|
|
|
|
|
#### 📦 描述
|
|
|
- 接收一个 JSON 对象,以 `"type"` 字段作为文件名,保存为 `./config/template/{type}.json`。
|
|
|
- 支持覆盖写入已有模板。
|
|
|
- 写入成功后自动调用 [config.load_configs()](file://D:\git\test\hik3d-python\config.py#L82-L89) 刷新配置。
|
|
|
|
|
|
#### 📥 请求体(JSON)
|
|
|
|
|
|
| 字段名 | 类型 | 必填 | 示例值 | 描述 |
|
|
|
|-------------|--------|------|-----------|--------------------|
|
|
|
| type | string | ✅ | "45" | 模板名称 |
|
|
|
| width | string | ❌ | "299" | 模板宽度(暂无作用) |
|
|
|
| length | string | ❌ | "355" | 模板长度(暂无作用) |
|
|
|
| height | number | ✅ | 314 | 最高高度(单位:毫米)|
|
|
|
| min_area | number | ✅ | 20 | 空洞最小面积 |
|
|
|
| tolerance | number | ✅ | 30 | 容差范围(单位:毫米)|
|
|
|
|
|
|
##### 示例请求体:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"type": "45",
|
|
|
"width": "299",
|
|
|
"length": "355",
|
|
|
"height": 314,
|
|
|
"min_area": 20,
|
|
|
"tolerance": 30
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
#### 📤 成功响应
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"status": "OK",
|
|
|
"message": "Template '45' saved successfully."
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
#### 📤 错误响应
|
|
|
|
|
|
- 缺少数据:
|
|
|
```json
|
|
|
{
|
|
|
"status": "ERROR",
|
|
|
"message": "No data provided"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
- 缺少 `type`:
|
|
|
```json
|
|
|
{
|
|
|
"status": "ERROR",
|
|
|
"message": "Missing 'type' field"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
- 写入失败:
|
|
|
```json
|
|
|
{
|
|
|
"status": "ERROR",
|
|
|
"message": "Failed to save template: [错误信息]"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
### 3. 图像处理与空洞检测 `/api/picCompute`
|
|
|
|
|
|
#### ✅ 方法
|
|
|
- `POST`
|
|
|
|
|
|
#### 📦 描述
|
|
|
- 根据设备编号和模板类型,获取点云并检测是否存在大空洞。
|
|
|
- 调用了 [SimpleView_SaveImage.pic()](file://D:\git\test\hik3d-python\SimpleView_SaveImage.py#L53-L137) 和 [image.detect_large_holes()](file://D:\git\test\hik3d-python\image.py#L187-L208)。
|
|
|
|
|
|
#### 📥 请求体(JSON)
|
|
|
|
|
|
| 字段名 | 类型 | 必填 | 示例值 | 描述 |
|
|
|
|--------|--------|------|------------|----------------|
|
|
|
| sn | string | ✅ | "00DA6823936" | 设备序列号 |
|
|
|
| type | string | ✅ | "45" | 模板类型(对应模板配置) |
|
|
|
|
|
|
##### 示例请求体:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"sn": "00DA6823936",
|
|
|
"type": "45"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
#### 📤 成功响应
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"message": true,
|
|
|
"status": "OK"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
> `message` 表示是否检测到空洞:
|
|
|
> - `true`:有空洞
|
|
|
> - `false`:无空洞
|
|
|
|
|
|
#### 📤 错误响应
|
|
|
|
|
|
- 缺少参数:
|
|
|
```json
|
|
|
{
|
|
|
"message": "",
|
|
|
"status": "ERROR",
|
|
|
"error": "Missing required parameter: 'sn'"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
- 模板不存在:
|
|
|
```json
|
|
|
{
|
|
|
"message": "",
|
|
|
"status": "ERROR",
|
|
|
"error": "Missing required parameter: 'type'"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
- 其他异常:
|
|
|
```json
|
|
|
{
|
|
|
"message": "",
|
|
|
"status": "ERROR",
|
|
|
"error": "Failed to get TIFF paths: [错误信息]"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
## ⚠️ 全局异常处理
|
|
|
|
|
|
所有未捕获的异常都会被全局异常处理器捕获,并返回如下格式:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"message": "",
|
|
|
"status": "ERROR",
|
|
|
"error": "[错误信息]"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
---
|