Files
TJWaterServerBinary/失效API排查.md
T

2.6 KiB

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