Skip to content

Commit b873ec7

Browse files
committed
🐞 Fix(Fixed some bugs): 修复一些bug
1 parent e90aae0 commit b873ec7

File tree

3 files changed

+249
-248
lines changed

3 files changed

+249
-248
lines changed

backend/plugin/api_testing/api/v1/environment.py

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -82,52 +82,54 @@ async def list_environments(project_id: int = Query(..., description="项目ID")
8282

8383

8484
@router.get("/environments/default", summary="获取默认环境")
85-
async def get_default_environment(project_id: int = Query(..., description="项目ID")) -> JSONResponse:
85+
async def get_default_environment(
86+
project_id: int = Query(description="项目ID")
87+
) -> ResponseModel | ResponseSchemaModel:
8688
"""
8789
获取项目默认环境
8890
"""
8991
environment = await EnvironmentManager.get_default_environment(project_id)
9092
if environment:
91-
return response_base.success(data=environment.model_dump(), msg="获取默认环境成功")
93+
return response_base.success(data=environment.model_dump())
9294
else:
93-
return response_base.success(data=None, msg="项目未设置默认环境")
95+
return response_base.success()
9496

9597

9698
@router.put("/environments/{environment_id}/default", summary="设置默认环境")
9799
async def set_default_environment(
98-
project_id: int = Query(..., description="项目ID"),
99-
environment_id: int = Path(..., description="环境ID")
100-
) -> JSONResponse:
100+
project_id: int = Query(description="项目ID"),
101+
environment_id: int = Path(description="环境ID")
102+
) -> ResponseModel | ResponseSchemaModel:
101103
"""
102104
设置项目默认环境
103105
"""
104106
success = await EnvironmentManager.set_default_environment(project_id, environment_id)
105107
if success:
106-
return response_base.success(msg="设置默认环境成功")
108+
return response_base.success(data=f"设置默认环境成功")
107109
else:
108-
return response_base.fail(msg="设置默认环境失败")
110+
return response_base.fail()
109111

110112

111113
# 变量管理接口
112114
@router.post("/variables", summary="创建变量")
113-
async def create_variable(variable: VariableModel) -> JSONResponse:
115+
async def create_variable(variable: VariableModel) -> ResponseModel | ResponseSchemaModel:
114116
"""
115117
创建变量
116118
"""
117119
success = await VariableManager.set_variable(variable)
118120
if success:
119-
return response_base.success(data=variable.model_dump(), msg="变量创建成功")
121+
return response_base.success(data=variable.model_dump())
120122
else:
121-
return response_base.fail(msg="变量创建失败")
123+
return response_base.fail()
122124

123125

124126
@router.get("/variables", summary="获取变量列表")
125127
async def list_variables(
126-
scope: VariableScope,
128+
scope: VariableScope = Query(..., description="变量作用域"),
127129
project_id: Optional[int] = Query(None, description="项目ID"),
128130
environment_id: Optional[int] = Query(None, description="环境ID"),
129131
case_id: Optional[int] = Query(None, description="用例ID")
130-
) -> JSONResponse:
132+
) -> ResponseModel | ResponseSchemaModel:
131133
"""
132134
获取变量列表
133135
"""
@@ -137,20 +139,17 @@ async def list_variables(
137139
environment_id=environment_id,
138140
case_id=case_id
139141
)
140-
return response_base.success(
141-
data=[var.model_dump() for var in variables],
142-
msg="获取变量列表成功"
143-
)
142+
return response_base.success(data=[var.model_dump() for var in variables])
144143

145144

146145
@router.get("/variables/{name}", summary="获取变量")
147146
async def get_variable(
148-
name: str = Path(..., description="变量名"),
147+
name: str = Path(description="变量名"),
149148
scope: VariableScope = Query(..., description="变量作用域"),
150149
project_id: Optional[int] = Query(None, description="项目ID"),
151150
environment_id: Optional[int] = Query(None, description="环境ID"),
152151
case_id: Optional[int] = Query(None, description="用例ID")
153-
) -> JSONResponse:
152+
) -> ResponseModel | ResponseSchemaModel:
154153
"""
155154
获取变量
156155
"""
@@ -162,19 +161,19 @@ async def get_variable(
162161
case_id=case_id
163162
)
164163
if variable:
165-
return response_base.success(data=variable.model_dump(), msg="获取变量成功")
164+
return response_base.success(data=variable.model_dump())
166165
else:
167-
return response_base.fail(msg="变量不存在")
166+
return response_base.fail()
168167

169168

170169
@router.delete("/variables/{name}", summary="删除变量")
171170
async def delete_variable(
172-
name: str = Path(..., description="变量名"),
173-
scope: VariableScope = Query(..., description="变量作用域"),
171+
name: str = Path(description="变量名"),
172+
scope: VariableScope = Query(description="变量作用域"),
174173
project_id: Optional[int] = Query(None, description="项目ID"),
175174
environment_id: Optional[int] = Query(None, description="环境ID"),
176175
case_id: Optional[int] = Query(None, description="用例ID")
177-
) -> JSONResponse:
176+
) -> ResponseModel | ResponseSchemaModel:
178177
"""
179178
删除变量
180179
"""
@@ -186,9 +185,9 @@ async def delete_variable(
186185
case_id=case_id
187186
)
188187
if success:
189-
return response_base.success(msg="删除变量成功")
188+
return response_base.success(data="删除变量成功")
190189
else:
191-
return response_base.fail(msg="删除变量失败")
190+
return response_base.fail()
192191

193192

194193
@router.post("/variables/process-template", summary="处理变量模板")
@@ -198,7 +197,7 @@ async def process_template(
198197
environment_id: Optional[int] = Body(None, description="环境ID"),
199198
case_id: Optional[int] = Body(None, description="用例ID"),
200199
temp_variables: Optional[Dict[str, Any]] = Body(None, description="临时变量")
201-
) -> JSONResponse:
200+
) -> ResponseModel | ResponseSchemaModel:
202201
"""
203202
处理变量模板,替换模板中的变量引用
204203
"""
@@ -209,4 +208,4 @@ async def process_template(
209208
case_id=case_id,
210209
temp_variables=temp_variables
211210
)
212-
return response_base.success(data={"result": result}, msg="处理变量模板成功")
211+
return response_base.success(data={"result": result})

backend/plugin/api_testing/api/v1/mock.py

Lines changed: 44 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from fastapi import APIRouter, Body, Path, Query
99
from 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
1212
from backend.plugin.api_testing.utils.mock_server import (
1313
MockProject, MockRule, MockResponse, MockCondition,
1414
MockServer
@@ -19,149 +19,145 @@
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项目")
4646
async 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规则")
10299
async 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规则")
117114
async 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规则")
137134
async 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

Comments
 (0)