88from fastapi import APIRouter , Body , Path , Query
99from fastapi .responses import JSONResponse
1010
11- from backend .common .response .response_schema import response_base
11+ from backend .common .response .response_schema import response_base , ResponseModel , ResponseSchemaModel
1212from backend .plugin .api_testing .utils .mock_server import (
1313 MockProject , MockRule , MockResponse , MockCondition ,
1414 MockServer
1919
2020# Mock项目管理接口
2121@router .post ("/projects" , summary = "创建Mock项目" )
22- async def create_mock_project (project : MockProject ) -> JSONResponse :
22+ async def create_mock_project (project : MockProject ) -> ResponseModel | ResponseSchemaModel :
2323 """
2424 创建Mock项目
2525 """
2626 success = await MockServer .create_project (project )
2727 if success :
28- return response_base .success (data = project .model_dump (), msg = "Mock项目创建成功" )
28+ return response_base .success (data = project .model_dump ())
2929 else :
30- return response_base .fail (msg = "Mock项目创建失败" )
30+ return response_base .fail ()
3131
3232
3333@router .get ("/projects/{project_id}" , summary = "获取Mock项目" )
34- async def get_mock_project (project_id : int = Path (..., description = "项目ID" )) -> JSONResponse :
34+ async def get_mock_project (project_id : int = Path (description = "项目ID" )) -> ResponseModel | ResponseSchemaModel :
3535 """
3636 获取Mock项目
3737 """
3838 project = await MockServer .get_project (project_id )
3939 if project :
40- return response_base .success (data = project .model_dump (), msg = "获取Mock项目成功" )
40+ return response_base .success (data = project .model_dump ())
4141 else :
42- return response_base .fail (msg = "Mock项目不存在" )
42+ return response_base .fail ()
4343
4444
4545@router .put ("/projects/{project_id}" , summary = "更新Mock项目" )
4646async def update_mock_project (
47- project : MockProject ,
48- project_id : int = Path (..., description = "项目ID" )
49- ) -> JSONResponse :
47+ project : MockProject ,
48+ project_id : int = Path (description = "项目ID" )
49+ ) -> ResponseModel | ResponseSchemaModel :
5050 """
5151 更新Mock项目
5252 """
5353 # 确保路径参数和请求体ID一致
5454 if project .id != project_id :
55- return response_base .fail (msg = "项目ID不匹配" )
56-
55+ return response_base .fail (data = "项目ID不匹配" )
56+
5757 success = await MockServer .update_project (project )
5858 if success :
59- return response_base .success (data = project .model_dump (), msg = "更新Mock项目成功" )
59+ return response_base .success (data = project .model_dump ())
6060 else :
61- return response_base .fail (msg = "更新Mock项目失败" )
61+ return response_base .fail (data = "更新Mock项目失败" )
6262
6363
6464@router .delete ("/projects/{project_id}" , summary = "删除Mock项目" )
65- async def delete_mock_project (project_id : int = Path (..., description = "项目ID" )) -> JSONResponse :
65+ async def delete_mock_project (project_id : int = Path (description = "项目ID" )) -> ResponseModel | ResponseSchemaModel :
6666 """
6767 删除Mock项目
6868 """
6969 success = await MockServer .delete_project (project_id )
7070 if success :
71- return response_base .success (msg = "删除Mock项目成功" )
71+ return response_base .success (data = "删除Mock项目成功" )
7272 else :
73- return response_base .fail (msg = "删除Mock项目失败" )
73+ return response_base .fail (data = "删除Mock项目失败" )
7474
7575
7676@router .get ("/projects" , summary = "获取所有Mock项目" )
77- async def list_mock_projects () -> JSONResponse :
77+ async def list_mock_projects () -> ResponseModel | ResponseSchemaModel :
7878 """
7979 获取所有Mock项目
8080 """
8181 projects = await MockServer .list_projects ()
82- return response_base .success (
83- data = [project .model_dump () for project in projects ],
84- msg = "获取Mock项目列表成功"
85- )
82+ return response_base .success (data = [project .model_dump () for project in projects ])
8683
8784
8885# Mock规则管理接口
8986@router .post ("/rules" , summary = "创建Mock规则" )
90- async def create_mock_rule (rule : MockRule ) -> JSONResponse :
87+ async def create_mock_rule (rule : MockRule ) -> ResponseModel | ResponseSchemaModel :
9188 """
9289 创建Mock规则
9390 """
9491 success = await MockServer .create_rule (rule )
9592 if success :
96- return response_base .success (data = rule .model_dump (), msg = "Mock规则创建成功" )
93+ return response_base .success (data = rule .model_dump ())
9794 else :
98- return response_base .fail (msg = "Mock规则创建失败" )
95+ return response_base .fail (data = "Mock规则创建失败" )
9996
10097
10198@router .get ("/rules/{rule_id}" , summary = "获取Mock规则" )
10299async def get_mock_rule (
103- rule_id : str = Path (..., description = "规则ID" ),
104- project_id : int = Query (..., description = "项目ID" )
105- ) -> JSONResponse :
100+ rule_id : str = Path (description = "规则ID" ),
101+ project_id : int = Query (description = "项目ID" )
102+ ) -> ResponseModel | ResponseSchemaModel :
106103 """
107104 获取Mock规则
108105 """
109106 rule = await MockServer .get_rule (rule_id , project_id )
110107 if rule :
111- return response_base .success (data = rule .model_dump (), msg = "获取Mock规则成功" )
108+ return response_base .success (data = rule .model_dump ())
112109 else :
113- return response_base .fail (msg = "Mock规则不存在" )
110+ return response_base .fail (data = "Mock规则不存在" )
114111
115112
116113@router .put ("/rules/{rule_id}" , summary = "更新Mock规则" )
117114async def update_mock_rule (
118- rule : MockRule ,
119- rule_id : str = Path (..., description = "规则ID" ),
120- project_id : int = Query (..., description = "项目ID" )
121- ) -> JSONResponse :
115+ rule : MockRule ,
116+ rule_id : str = Path (description = "规则ID" ),
117+ project_id : int = Query (description = "项目ID" )
118+ ) -> ResponseModel | ResponseSchemaModel :
122119 """
123120 更新Mock规则
124121 """
125122 # 确保路径参数和请求体ID一致
126123 if rule .id != rule_id or rule .project_id != project_id :
127- return response_base .fail (msg = "规则ID或项目ID不匹配" )
128-
124+ return response_base .fail (data = "规则ID或项目ID不匹配" )
125+
129126 success = await MockServer .update_rule (rule )
130127 if success :
131- return response_base .success (data = rule .model_dump (), msg = "更新Mock规则成功" )
128+ return response_base .success (data = rule .model_dump ())
132129 else :
133- return response_base .fail (msg = "更新Mock规则失败" )
130+ return response_base .fail (data = "更新Mock规则失败" )
134131
135132
136133@router .delete ("/rules/{rule_id}" , summary = "删除Mock规则" )
137134async def delete_mock_rule (
138- rule_id : str = Path (..., description = "规则ID" ),
139- project_id : int = Query (..., description = "项目ID" )
140- ) -> JSONResponse :
135+ rule_id : str = Path (description = "规则ID" ),
136+ project_id : int = Query (description = "项目ID" )
137+ ) -> ResponseModel | ResponseSchemaModel :
141138 """
142139 删除Mock规则
143140 """
144141 success = await MockServer .delete_rule (rule_id , project_id )
145142 if success :
146- return response_base .success (msg = "删除Mock规则成功" )
143+ return response_base .success (data = "删除Mock规则成功" )
147144 else :
148- return response_base .fail (msg = "删除Mock规则失败" )
145+ return response_base .fail (data = "删除Mock规则失败" )
149146
150147
151148@router .get ("/rules" , summary = "获取项目的所有Mock规则" )
152- async def list_mock_rules (project_id : int = Query (..., description = "项目ID" )) -> JSONResponse :
149+ async def list_mock_rules (project_id : int = Query (..., description = "项目ID" )) -> ResponseModel | ResponseSchemaModel :
153150 """
154151 获取项目的所有Mock规则
155152 """
156153 rules = await MockServer .list_rules (project_id )
157154 return response_base .success (
158- data = [rule .model_dump () for rule in rules ],
159- msg = "获取Mock规则列表成功"
155+ data = [rule .model_dump () for rule in rules ]
160156 )
161157
162158
163159@router .get ("/server-info" , summary = "获取Mock服务信息" )
164- async def get_mock_server_info () -> JSONResponse :
160+ async def get_mock_server_info () -> ResponseModel | ResponseSchemaModel :
165161 """
166162 获取Mock服务信息
167163 """
@@ -172,4 +168,4 @@ async def get_mock_server_info() -> JSONResponse:
172168 "docs_url" : "/docs" ,
173169 "redoc_url" : "/redoc"
174170 }
175- return response_base .success (data = info , msg = "获取Mock服务信息成功" )
171+ return response_base .success (data = info , msg = "获取Mock服务信息成功" )
0 commit comments