feat(api): standardize REST contracts and auth

This commit is contained in:
2026-07-30 20:38:51 +08:00
parent ae1a657554
commit ba947b616b
86 changed files with 54193 additions and 990 deletions
+33 -33
View File
@@ -45,7 +45,7 @@ router = APIRouter()
############################################################
@router.get(
"/isnode/",
"/nodes/existence",
summary="检查节点有效性",
description="检查指定ID是否为水网中的有效节点"
)
@@ -57,7 +57,7 @@ async def fastapi_is_node(
return is_node(network, node)
@router.get(
"/isjunction/",
"/junctions/existence",
summary="检查是否为接点",
description="检查指定ID是否为水网中的接点(需求点)"
)
@@ -69,7 +69,7 @@ async def fastapi_is_junction(
return is_junction(network, node)
@router.get(
"/isreservoir/",
"/reservoirs/existence",
summary="检查是否为水源",
description="检查指定ID是否为水网中的水源(水库/河流)"
)
@@ -81,7 +81,7 @@ async def fastapi_is_reservoir(
return is_reservoir(network, node)
@router.get(
"/istank/",
"/tanks/existence",
summary="检查是否为蓄水池",
description="检查指定ID是否为水网中的蓄水池"
)
@@ -93,7 +93,7 @@ async def fastapi_is_tank(
return is_tank(network, node)
@router.get(
"/islink/",
"/links/existence",
summary="检查管线有效性",
description="检查指定ID是否为水网中的有效管线"
)
@@ -105,7 +105,7 @@ async def fastapi_is_link(
return is_link(network, link)
@router.get(
"/ispipe/",
"/pipes/existence",
summary="检查是否为管道",
description="检查指定ID是否为水网中的管道"
)
@@ -117,7 +117,7 @@ async def fastapi_is_pipe(
return is_pipe(network, link)
@router.get(
"/ispump/",
"/pumps/existence",
summary="检查是否为泵",
description="检查指定ID是否为水网中的泵"
)
@@ -129,7 +129,7 @@ async def fastapi_is_pump(
return is_pump(network, link)
@router.get(
"/isvalve/",
"/valves/existence",
summary="检查是否为阀门",
description="检查指定ID是否为水网中的阀门"
)
@@ -141,7 +141,7 @@ async def fastapi_is_valve(
return is_valve(network, link)
@router.get(
"/getnodetype/",
"/node-types",
summary="获取节点类型",
description="获取指定节点的类型(接点/水源/蓄水池)"
)
@@ -153,7 +153,7 @@ async def fastapi_get_node_type(
return get_node_type(network, node)
@router.get(
"/getlinktype/",
"/link-types",
summary="获取管线类型",
description="获取指定管线的类型(管道/泵/阀门)"
)
@@ -165,7 +165,7 @@ async def fastapi_get_link_type(
return get_link_type(network, link)
@router.get(
"/getelementtype/",
"/element-types",
summary="获取元素类型",
description="获取指定元素的类型(节点或管线)"
)
@@ -177,7 +177,7 @@ async def fastapi_get_element_type(
return get_element_type(network, element)
@router.get(
"/getelementtypevalue/",
"/element-type-values",
summary="获取元素类型值",
description="获取指定元素的类型数值标识"
)
@@ -189,7 +189,7 @@ async def fastapi_get_element_type_value(
return get_element_type_value(network, element)
@router.get(
"/getnodes/",
"/nodes",
summary="获取所有节点",
description="获取指定水网中的所有节点ID列表"
)
@@ -198,7 +198,7 @@ async def fastapi_get_nodes(network: str = Query(..., description="管网名称
return get_nodes(network)
@router.get(
"/getlinks/",
"/links",
summary="获取所有管线",
description="获取指定水网中的所有管线ID列表"
)
@@ -207,7 +207,7 @@ async def fastapi_get_links(network: str = Query(..., description="管网名称
return get_links(network)
@router.get(
"/getnodelinks/",
"/node-links",
summary="获取节点的关联管线",
description="获取指定节点连接的所有管线ID列表"
)
@@ -223,7 +223,7 @@ def get_node_links_endpoint(
############################################################
@router.get(
"/getnodeproperties/",
"/node-properties",
summary="获取节点属性",
description="获取指定节点的所有属性信息"
)
@@ -235,7 +235,7 @@ async def fast_get_node_properties(
return get_node_properties(network, node)
@router.get(
"/getlinkproperties/",
"/link-properties",
summary="获取管线属性",
description="获取指定管线的所有属性信息"
)
@@ -247,7 +247,7 @@ async def fast_get_link_properties(
return get_link_properties(network, link)
@router.get(
"/getscadaproperties/",
"/scada-properties",
summary="获取SCADA点属性",
description="获取指定SCADA点的属性信息"
)
@@ -259,7 +259,7 @@ async def fast_get_scada_properties(
return get_scada_info(network, scada)
@router.get(
"/getallscadaproperties/",
"/all-scada-properties",
summary="获取所有SCADA点属性",
description="获取指定水网中所有SCADA点的属性信息"
)
@@ -270,7 +270,7 @@ async def fast_get_all_scada_properties(
return get_all_scada_info(network)
@router.get(
"/getelementpropertieswithtype/",
"/element-properties-with-types",
summary="获取指定类型元素属性",
description="获取指定类型的元素属性信息"
)
@@ -283,7 +283,7 @@ async def fast_get_element_properties_with_type(
return get_element_properties_with_type(network, elementtype, element)
@router.get(
"/getelementproperties/",
"/element-properties",
summary="获取元素属性",
description="获取指定元素的属性信息"
)
@@ -299,7 +299,7 @@ async def fast_get_element_properties(
############################################################
@router.get(
"/gettitleschema/",
"/title-schemas",
summary="获取标题属性架构",
description="获取指定水网的标题(标题)属性架构定义"
)
@@ -310,7 +310,7 @@ async def fast_get_title_schema(
return get_title_schema(network)
@router.get(
"/gettitle/",
"/titles",
summary="获取水网标题属性",
description="获取指定水网的标题(Title)信息"
)
@@ -318,8 +318,8 @@ async def fast_get_title(network: str = Query(..., description="管网名称(
"""获取水网的标题属性。"""
return get_title(network)
@router.get(
"/settitle/",
@router.patch(
"/titles",
response_model=None,
summary="设置水网标题属性",
description="设置指定水网的标题(Title)信息"
@@ -337,7 +337,7 @@ async def fastapi_set_title(
############################################################
@router.get(
"/getstatusschema",
"/status-schemas",
summary="获取状态属性架构",
description="获取指定水网的状态(Status)属性架构定义"
)
@@ -348,7 +348,7 @@ async def fastapi_get_status_schema(
return get_status_schema(network)
@router.get(
"/getstatus/",
"/status",
summary="获取管线状态",
description="获取指定管线的状态信息"
)
@@ -359,8 +359,8 @@ async def fastapi_get_status(
"""获取管线的状态属性。"""
return get_status(network, link)
@router.post(
"/setstatus/",
@router.patch(
"/status-properties",
response_model=None,
summary="设置管线状态",
description="设置指定管线的状态信息"
@@ -379,8 +379,8 @@ async def fastapi_set_status_properties(
# General Deletion
############################################################
@router.post(
"/deletenode/",
@router.delete(
"/nodes",
response_model=None,
summary="删除节点",
description="删除指定的节点(接点/水源/蓄水池)"
@@ -399,8 +399,8 @@ async def fastapi_delete_node(
return delete_tank(network, ChangeSet(ps))
return ChangeSet() # Should probably raise error or return empty
@router.post(
"/deletelink/",
@router.delete(
"/links",
response_model=None,
summary="删除管线",
description="删除指定的管线(管道/泵/阀门)"