Files
TJWaterServerBinary/失效API排查.md
T

77 lines
2.6 KiB
Markdown

# `app/api/v1/endpoints/` 失效 API 排查与修正
排查范围:`app/api/v1/endpoints/`
结论:本次共确认 5 个问题接口,处理结果如下:
- **已删除 4 个未实现坏接口**
- **已修正 1 个签名失配接口**
> 路由统一前缀来自 `app/main.py:71`,以下完整路径均以 `/api/v1` 开头。
## 处理结果
| Method | API | 原问题 | 处理结果 |
| --- | --- | --- | --- |
| GET | `/api/v1/calculateregion/` | 调用时 `NameError`,底层无 `calculate_region` 实现 | **已删除** |
| GET | `/api/v1/getallregions/` | 调用时 `NameError`,底层无 `get_all_regions` 实现 | **已删除** |
| POST | `/api/v1/generateregion/` | 调用时 `NameError`,底层无 `generate_region` 实现 | **已删除** |
| GET | `/api/v1/calculatedistrictmeteringarea/` | 调用时 `NameError`,仍指向已废弃旧 DMA 入口 | **已删除** |
| GET | `/api/v1/calculateservicearea/` | endpoint 传 `time_index`,实现只接受 `name` | **已修正**,现返回全部时间步结果 |
## 删除原因
### 1. region 相关 3 个接口
以下能力在当前 `wndb` / `tjnetwork` 中均不存在:
- `calculate_region`
- `get_all_regions`
- `generate_region`
`app/native/wndb/__init__.py` 当前只提供 region CRUD 和 util 能力,不提供 region 计算或批量查询能力。因此这 3 个接口继续保留只会在运行时失败。
### 2. DMA 旧入口
旧接口 `calculate_district_metering_area(...)` 已不存在,当前只保留 3 个明确变体:
- `/api/v1/calculatedistrictmeteringareafornodes/`
- `/api/v1/calculatedistrictmeteringareaforregion/`
- `/api/v1/calculatedistrictmeteringareafornetwork/`
因此旧入口 `/api/v1/calculatedistrictmeteringarea/` 已删除,避免前端继续误用历史接口。
## 修正内容
### `GET /api/v1/calculateservicearea/`
原接口问题:
- endpoint 定义保留 `time_index`
- 实际实现 `calculate_service_area(name)` 只接收 `network/name`
- 调用时会触发参数数量不匹配
本次修正后:
- 移除 `time_index` 查询参数
- 返回类型改为 `list[dict[str, list[str]]]`
- 接口语义改为:**返回全部时间步的服务区计算结果**
## 当前可用替代接口
DMA 计算请使用:
- `/api/v1/calculatedistrictmeteringareafornodes/`
- `/api/v1/calculatedistrictmeteringareaforregion/`
- `/api/v1/calculatedistrictmeteringareafornetwork/`
服务区计算请使用:
- `/api/v1/calculateservicearea/`
现在返回全部时间步结果,不再接收 `time_index`
## 变更文件
- `app/api/v1/endpoints/network/regions.py`
- `失效API排查.md`