Skip to content

Commit 19aeb51

Browse files
committed
Optimize arg description
1 parent 9f0530f commit 19aeb51

File tree

29 files changed

+186
-144
lines changed

29 files changed

+186
-144
lines changed

README.zh-CN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ mvc 架构作为常规设计模式,在 python web 中也很常见,但是三
6767
- [x] 字典管理:维护系统内部常用固定数据或参数
6868
- [x] 令牌管理:系统用户在线状态检测,支持踢人下线
6969
- [x] 登录认证:基于后端的图形验证码后台认证登录
70-
- [x] 多点登录:通过用户信息一键修改多点登录支持
70+
- [x] 多端登录:通过用户信息一键修改多端登录支持
7171
- [x] OAuth20:内置自研 OAuth 2.0 登录集成
7272
- [x] 代码生成:后端代码自动生成,支持预览,写入及下载
7373
- [x] 定时任务:自动化任务,异步任务,支持函数调用

backend/app/admin/api/v1/auth/auth.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ async def user_login(
3636

3737

3838
@router.post('/token/new', summary='创建新 token')
39-
async def create_new_token(request: Request, response: Response) -> ResponseSchemaModel[GetNewToken]:
39+
async def create_new_token(request: Request) -> ResponseSchemaModel[GetNewToken]:
4040
data = await auth_service.new_token(request=request)
4141
return response_base.success(data=data)
4242

backend/app/admin/api/v1/log/login_log.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@
1818

1919
@router.get(
2020
'',
21-
summary='(模糊条件)分页获取登录日志',
21+
summary='分页获取登录日志',
2222
dependencies=[
2323
DependsJwtAuth,
2424
DependsPagination,
2525
],
2626
)
2727
async def get_pagination_login_logs(
2828
db: CurrentSession,
29-
username: Annotated[str | None, Query()] = None,
30-
status: Annotated[int | None, Query()] = None,
31-
ip: Annotated[str | None, Query()] = None,
29+
username: Annotated[str | None, Query(description='用户名')] = None,
30+
status: Annotated[int | None, Query(description='状态')] = None,
31+
ip: Annotated[str | None, Query(description='IP 地址')] = None,
3232
) -> ResponseSchemaModel[PageData[GetLoginLogDetail]]:
3333
log_select = await login_log_service.get_select(username=username, status=status, ip=ip)
3434
page_data = await paging_data(db, log_select)
@@ -37,13 +37,13 @@ async def get_pagination_login_logs(
3737

3838
@router.delete(
3939
'',
40-
summary='(批量)删除登录日志',
40+
summary='批量删除登录日志',
4141
dependencies=[
4242
Depends(RequestPermission('log:login:del')),
4343
DependsRBAC,
4444
],
4545
)
46-
async def delete_login_log(pk: Annotated[list[int], Query(...)]) -> ResponseModel:
46+
async def delete_login_log(pk: Annotated[list[int], Query(..., description='登录日志 ID 列表')]) -> ResponseModel:
4747
count = await login_log_service.delete(pk=pk)
4848
if count > 0:
4949
return response_base.success()

backend/app/admin/api/v1/log/opera_log.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@
1818

1919
@router.get(
2020
'',
21-
summary='(模糊条件)分页获取操作日志',
21+
summary='分页获取操作日志',
2222
dependencies=[
2323
DependsJwtAuth,
2424
DependsPagination,
2525
],
2626
)
2727
async def get_pagination_opera_logs(
2828
db: CurrentSession,
29-
username: Annotated[str | None, Query()] = None,
30-
status: Annotated[int | None, Query()] = None,
31-
ip: Annotated[str | None, Query()] = None,
29+
username: Annotated[str | None, Query(description='用户名')] = None,
30+
status: Annotated[int | None, Query(description='状态')] = None,
31+
ip: Annotated[str | None, Query(description='IP 地址')] = None,
3232
) -> ResponseSchemaModel[PageData[GetOperaLogDetail]]:
3333
log_select = await opera_log_service.get_select(username=username, status=status, ip=ip)
3434
page_data = await paging_data(db, log_select)
@@ -37,13 +37,13 @@ async def get_pagination_opera_logs(
3737

3838
@router.delete(
3939
'',
40-
summary='(批量)删除操作日志',
40+
summary='批量删除操作日志',
4141
dependencies=[
4242
Depends(RequestPermission('log:opera:del')),
4343
DependsRBAC,
4444
],
4545
)
46-
async def delete_opera_log(pk: Annotated[list[int], Query(...)]) -> ResponseModel:
46+
async def delete_opera_log(pk: Annotated[list[int], Query(..., description='操作日志 ID 列表')]) -> ResponseModel:
4747
count = await opera_log_service.delete(pk=pk)
4848
if count > 0:
4949
return response_base.success()

backend/app/admin/api/v1/monitor/redis.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,8 @@
1919
],
2020
)
2121
async def get_redis_info() -> ResponseModel:
22-
data = {'info': await redis_info.get_info(), 'stats': await redis_info.get_stats()}
22+
data = {
23+
'info': await redis_info.get_info(),
24+
'stats': await redis_info.get_stats(),
25+
}
2326
return response_base.success(data=data)

backend/app/admin/api/v1/oauth2/linux_do.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,34 +12,34 @@
1212

1313
router = APIRouter()
1414

15-
_linux_do_client = LinuxDoOAuth20(
16-
admin_settings.OAUTH2_LINUX_DO_CLIENT_ID,
17-
admin_settings.OAUTH2_LINUX_DO_CLIENT_SECRET,
15+
_linuxdo_client = LinuxDoOAuth20(
16+
admin_settings.OAUTH2_LINUXDO_CLIENT_ID,
17+
admin_settings.OAUTH2_LINUXDO_CLIENT_SECRET,
1818
)
19-
_linux_do_oauth2 = FastAPIOAuth20(_linux_do_client, admin_settings.OAUTH2_LINUX_DO_REDIRECT_URI)
19+
_linuxdo_oauth2 = FastAPIOAuth20(_linuxdo_client, admin_settings.OAUTH2_LINUXDO_REDIRECT_URI)
2020

2121

22-
@router.get('', summary='获取 Linux Do 授权链接')
23-
async def linux_do_auth2() -> ResponseSchemaModel[str]:
24-
auth_url = await _linux_do_client.get_authorization_url(redirect_uri=admin_settings.OAUTH2_LINUX_DO_REDIRECT_URI)
22+
@router.get('', summary='获取 LinuxDo 授权链接')
23+
async def linuxdo_auth2() -> ResponseSchemaModel[str]:
24+
auth_url = await _linuxdo_client.get_authorization_url(redirect_uri=admin_settings.OAUTH2_LINUXDO_REDIRECT_URI)
2525
return response_base.success(data=auth_url)
2626

2727

2828
@router.get(
2929
'/callback',
30-
summary='Linux Do 授权自动重定向',
31-
description='Linux Do 授权后,自动重定向到当前地址并获取用户信息,通过用户信息自动创建系统用户',
30+
summary='LinuxDo 授权自动重定向',
31+
description='LinuxDo 授权后,自动重定向到当前地址并获取用户信息,通过用户信息自动创建系统用户',
3232
dependencies=[Depends(RateLimiter(times=5, minutes=1))],
3333
)
34-
async def linux_do_login(
34+
async def linuxdo_login(
3535
request: Request,
3636
response: Response,
3737
background_tasks: BackgroundTasks,
38-
oauth2: FastAPIOAuth20 = Depends(_linux_do_oauth2),
38+
oauth2: FastAPIOAuth20 = Depends(_linuxdo_oauth2),
3939
):
4040
token, _state = oauth2
4141
access_token = token['access_token']
42-
user = await _linux_do_client.get_userinfo(access_token)
42+
user = await _linuxdo_client.get_userinfo(access_token)
4343
data = await oauth2_service.create_with_login(
4444
request=request,
4545
response=response,

backend/app/admin/api/v1/sys/config.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,23 +78,23 @@ async def save_policy_config(objs: list[SaveBuiltInConfigParam]) -> ResponseMode
7878
return response_base.success()
7979

8080

81-
@router.get('/{pk}', summary='获取系统参数配置详情', dependencies=[DependsJwtAuth])
82-
async def get_config(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetConfigDetail]:
81+
@router.get('/{pk}', summary='获取配置详情', dependencies=[DependsJwtAuth])
82+
async def get_config(pk: Annotated[int, Path(..., description='配置 ID')]) -> ResponseSchemaModel[GetConfigDetail]:
8383
config = await config_service.get(pk)
8484
return response_base.success(data=config)
8585

8686

8787
@router.get(
8888
'',
89-
summary='(模糊条件)分页获取所有系统参数配置',
89+
summary='分页获取所有配置',
9090
dependencies=[
9191
DependsJwtAuth,
9292
DependsPagination,
9393
],
9494
)
95-
async def get_pagination_config(
95+
async def get_pagination_configs(
9696
db: CurrentSession,
97-
name: Annotated[str | None, Query()] = None,
97+
name: Annotated[str | None, Query(description='配置名称')] = None,
9898
type: Annotated[str | None, Query()] = None,
9999
) -> ResponseSchemaModel[PageData[GetConfigDetail]]:
100100
config_select = await config_service.get_select(name=name, type=type)
@@ -104,7 +104,7 @@ async def get_pagination_config(
104104

105105
@router.post(
106106
'',
107-
summary='创建系统参数配置',
107+
summary='创建配置',
108108
dependencies=[
109109
Depends(RequestPermission('sys:config:add')),
110110
DependsRBAC,
@@ -117,13 +117,13 @@ async def create_config(obj: CreateConfigParam) -> ResponseModel:
117117

118118
@router.put(
119119
'/{pk}',
120-
summary='更新系统参数配置',
120+
summary='更新配置',
121121
dependencies=[
122122
Depends(RequestPermission('sys:config:edit')),
123123
DependsRBAC,
124124
],
125125
)
126-
async def update_config(pk: Annotated[int, Path(...)], obj: UpdateConfigParam) -> ResponseModel:
126+
async def update_config(pk: Annotated[int, Path(..., description='配置 ID')], obj: UpdateConfigParam) -> ResponseModel:
127127
count = await config_service.update(pk=pk, obj=obj)
128128
if count > 0:
129129
return response_base.success()
@@ -132,13 +132,13 @@ async def update_config(pk: Annotated[int, Path(...)], obj: UpdateConfigParam) -
132132

133133
@router.delete(
134134
'',
135-
summary='(批量)删除系统参数配置',
135+
summary='批量删除配置',
136136
dependencies=[
137137
Depends(RequestPermission('sys:config:del')),
138138
DependsRBAC,
139139
],
140140
)
141-
async def delete_config(pk: Annotated[list[int], Query(...)]) -> ResponseModel:
141+
async def delete_config(pk: Annotated[list[int], Query(..., description='配置 ID 列表')]) -> ResponseModel:
142142
count = await config_service.delete(pk=pk)
143143
if count > 0:
144144
return response_base.success()

backend/app/admin/api/v1/sys/data_rule.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,33 +23,37 @@ async def get_data_rule_models() -> ResponseSchemaModel[list[str]]:
2323

2424

2525
@router.get('/model/{model}/columns', summary='获取支持过滤的数据库模型列', dependencies=[DependsJwtAuth])
26-
async def get_data_rule_model_columns(model: Annotated[str, Path()]) -> ResponseSchemaModel[list[str]]:
26+
async def get_data_rule_model_columns(
27+
model: Annotated[str, Path(description='模型名称')],
28+
) -> ResponseSchemaModel[list[str]]:
2729
models = await data_rule_service.get_columns(model=model)
2830
return response_base.success(data=models)
2931

3032

3133
@router.get('/all', summary='获取所有数据规则', dependencies=[DependsJwtAuth])
32-
async def get_all_data_rule() -> ResponseSchemaModel[list[GetDataRuleDetail]]:
34+
async def get_all_data_rules() -> ResponseSchemaModel[list[GetDataRuleDetail]]:
3335
data = await data_rule_service.get_all()
3436
return response_base.success(data=data)
3537

3638

3739
@router.get('/{pk}', summary='获取数据权限规则详情', dependencies=[DependsJwtAuth])
38-
async def get_data_rule(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetDataRuleDetail]:
40+
async def get_data_rule(
41+
pk: Annotated[int, Path(..., description='数据规则 ID')],
42+
) -> ResponseSchemaModel[GetDataRuleDetail]:
3943
data = await data_rule_service.get(pk=pk)
4044
return response_base.success(data=data)
4145

4246

4347
@router.get(
4448
'',
45-
summary='(模糊条件)分页获取所有数据权限规则',
49+
summary='分页获取所有数据权限规则',
4650
dependencies=[
4751
DependsJwtAuth,
4852
DependsPagination,
4953
],
5054
)
51-
async def get_pagination_data_rule(
52-
db: CurrentSession, name: Annotated[str | None, Query()] = None
55+
async def get_pagination_data_rules(
56+
db: CurrentSession, name: Annotated[str | None, Query(description='规则名称')] = None
5357
) -> ResponseSchemaModel[PageData[GetDataRuleDetail]]:
5458
data_rule_select = await data_rule_service.get_select(name=name)
5559
page_data = await paging_data(db, data_rule_select)
@@ -77,7 +81,9 @@ async def create_data_rule(obj: CreateDataRuleParam) -> ResponseModel:
7781
DependsRBAC,
7882
],
7983
)
80-
async def update_data_rule(pk: Annotated[int, Path(...)], obj: UpdateDataRuleParam) -> ResponseModel:
84+
async def update_data_rule(
85+
pk: Annotated[int, Path(..., description='数据规则 ID')], obj: UpdateDataRuleParam
86+
) -> ResponseModel:
8187
count = await data_rule_service.update(pk=pk, obj=obj)
8288
if count > 0:
8389
return response_base.success()
@@ -86,13 +92,15 @@ async def update_data_rule(pk: Annotated[int, Path(...)], obj: UpdateDataRulePar
8692

8793
@router.delete(
8894
'',
89-
summary='(批量)删除数据权限规则',
95+
summary='批量删除数据权限规则',
9096
dependencies=[
9197
Depends(RequestPermission('data:rule:del')),
9298
DependsRBAC,
9399
],
94100
)
95-
async def delete_data_rule(request: Request, pk: Annotated[list[int], Query(...)]) -> ResponseModel:
101+
async def delete_data_rule(
102+
request: Request, pk: Annotated[list[int], Query(..., description='数据规则 ID 列表')]
103+
) -> ResponseModel:
96104
count = await data_rule_service.delete(request=request, pk=pk)
97105
if count > 0:
98106
return response_base.success()

backend/app/admin/api/v1/sys/dept.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@
1515

1616

1717
@router.get('/{pk}', summary='获取部门详情', dependencies=[DependsJwtAuth])
18-
async def get_dept(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetDeptDetail]:
18+
async def get_dept(pk: Annotated[int, Path(..., description='部门 ID')]) -> ResponseSchemaModel[GetDeptDetail]:
1919
data = await dept_service.get(pk=pk)
2020
return response_base.success(data=data)
2121

2222

2323
@router.get('', summary='获取所有部门展示树', dependencies=[DependsJwtAuth])
2424
async def get_all_depts(
25-
name: Annotated[str | None, Query()] = None,
26-
leader: Annotated[str | None, Query()] = None,
27-
phone: Annotated[str | None, Query()] = None,
28-
status: Annotated[int | None, Query()] = None,
25+
name: Annotated[str | None, Query(description='部门名称')] = None,
26+
leader: Annotated[str | None, Query(description='部门负责人')] = None,
27+
phone: Annotated[str | None, Query(description='联系电话')] = None,
28+
status: Annotated[int | None, Query(description='状态')] = None,
2929
) -> ResponseSchemaModel[list[dict[str, Any]]]:
3030
dept = await dept_service.get_dept_tree(name=name, leader=leader, phone=phone, status=status)
3131
return response_base.success(data=dept)
@@ -52,7 +52,7 @@ async def create_dept(obj: CreateDeptParam) -> ResponseModel:
5252
DependsRBAC,
5353
],
5454
)
55-
async def update_dept(pk: Annotated[int, Path(...)], obj: UpdateDeptParam) -> ResponseModel:
55+
async def update_dept(pk: Annotated[int, Path(..., description='部门 ID')], obj: UpdateDeptParam) -> ResponseModel:
5656
count = await dept_service.update(pk=pk, obj=obj)
5757
if count > 0:
5858
return response_base.success()
@@ -67,7 +67,7 @@ async def update_dept(pk: Annotated[int, Path(...)], obj: UpdateDeptParam) -> Re
6767
DependsRBAC,
6868
],
6969
)
70-
async def delete_dept(request: Request, pk: Annotated[int, Path(...)]) -> ResponseModel:
70+
async def delete_dept(request: Request, pk: Annotated[int, Path(..., description='部门 ID')]) -> ResponseModel:
7171
count = await dept_service.delete(request=request, pk=pk)
7272
if count > 0:
7373
return response_base.success()

backend/app/admin/api/v1/sys/dict_data.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,26 @@
2222

2323

2424
@router.get('/{pk}', summary='获取字典详情', dependencies=[DependsJwtAuth])
25-
async def get_dict_data(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetDictDataWithRelation]:
25+
async def get_dict_data(
26+
pk: Annotated[int, Path(..., description='字典数据 ID')],
27+
) -> ResponseSchemaModel[GetDictDataWithRelation]:
2628
data = await dict_data_service.get(pk=pk)
2729
return response_base.success(data=data)
2830

2931

3032
@router.get(
3133
'',
32-
summary='(模糊条件)分页获取所有字典',
34+
summary='分页获取所有字典',
3335
dependencies=[
3436
DependsJwtAuth,
3537
DependsPagination,
3638
],
3739
)
3840
async def get_pagination_dict_datas(
3941
db: CurrentSession,
40-
label: Annotated[str | None, Query()] = None,
41-
value: Annotated[str | None, Query()] = None,
42-
status: Annotated[int | None, Query()] = None,
42+
label: Annotated[str | None, Query(description='字典数据标签')] = None,
43+
value: Annotated[str | None, Query(description='字典数据键值')] = None,
44+
status: Annotated[int | None, Query(description='状态')] = None,
4345
) -> ResponseSchemaModel[PageData[GetDictDataDetail]]:
4446
dict_data_select = await dict_data_service.get_select(label=label, value=value, status=status)
4547
page_data = await paging_data(db, dict_data_select)
@@ -67,7 +69,9 @@ async def create_dict_data(obj: CreateDictDataParam) -> ResponseModel:
6769
DependsRBAC,
6870
],
6971
)
70-
async def update_dict_data(pk: Annotated[int, Path(...)], obj: UpdateDictDataParam) -> ResponseModel:
72+
async def update_dict_data(
73+
pk: Annotated[int, Path(..., description='字典数据 ID')], obj: UpdateDictDataParam
74+
) -> ResponseModel:
7175
count = await dict_data_service.update(pk=pk, obj=obj)
7276
if count > 0:
7377
return response_base.success()
@@ -76,13 +80,13 @@ async def update_dict_data(pk: Annotated[int, Path(...)], obj: UpdateDictDataPar
7680

7781
@router.delete(
7882
'',
79-
summary='(批量)删除字典',
83+
summary='批量删除字典',
8084
dependencies=[
8185
Depends(RequestPermission('sys:dict:data:del')),
8286
DependsRBAC,
8387
],
8488
)
85-
async def delete_dict_data(pk: Annotated[list[int], Query(...)]) -> ResponseModel:
89+
async def delete_dict_data(pk: Annotated[list[int], Query(..., description='字典数据 ID 列表')]) -> ResponseModel:
8690
count = await dict_data_service.delete(pk=pk)
8791
if count > 0:
8892
return response_base.success()

0 commit comments

Comments
 (0)