mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-22 05:02:57 +00:00
refactor: 完成项目整体架构升级与依赖优化
此提交包含多项核心优化: 1. 依赖库升级:更新FastAPI、替换fastapi-limiter为slowapi,更换MySQL驱动为aiomysql,重构缓存系统使用fastapi-cache2-fork 2. 代码重构:移除自定义缓存工具,统一使用fastapi-cache2;重构请求限流逻辑,修复操作日志记录开关逻辑 3. 接口规范:统一将Depends分页/查询参数改为Query注解,补全File上传依赖注解 4. 前端优化:调整登录滑块进度条颜色、移除冗余demo页面样式类 5. 日志优化:重构日志配置,使用time.perf_counter替代time.time统计耗时 6. 测试优化:移除冗余的限流mock配置,改用官方限流方案 7. 模板优化:更新vue代码生成模板,移除冗余导入并优化组件使用 8. 导入功能优化:移除pandas依赖,使用Excel工具类重构文件导入逻辑
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Body, Depends, Form, Query, Request, UploadFile
|
||||
from fastapi import APIRouter, Body, Depends, Form, Query, File, Request, UploadFile
|
||||
from fastapi.responses import FileResponse, JSONResponse, StreamingResponse
|
||||
|
||||
from app.api.v1.module_common.file.service import FileService
|
||||
@@ -33,8 +33,8 @@ ResourceRouter = APIRouter(route_class=OperationLogRoute, prefix="/resource", ta
|
||||
)
|
||||
async def get_directory_list_controller(
|
||||
request: Request,
|
||||
page: Annotated[PaginationQueryParam, Depends()],
|
||||
search: Annotated[ResourceSearchQueryParam, Depends()],
|
||||
page: Annotated[PaginationQueryParam, Query()],
|
||||
search: Annotated[ResourceSearchQueryParam, Query()],
|
||||
) -> JSONResponse:
|
||||
result_dict_list = await ResourceService.get_resources_list(search=search, base_url=str(request.base_url))
|
||||
result_dict = await PaginationService.paginate(
|
||||
@@ -52,8 +52,8 @@ async def get_directory_list_controller(
|
||||
dependencies=[Depends(AuthPermission(["module_monitor:resource:upload"]))],
|
||||
)
|
||||
async def upload_file_controller(
|
||||
file: UploadFile,
|
||||
request: Request,
|
||||
file: Annotated[UploadFile, File(description="上传文件")],
|
||||
target_path: Annotated[str | None, Form(description="目标目录路径")] = None,
|
||||
) -> JSONResponse:
|
||||
result = await FileService.upload_service(
|
||||
@@ -105,7 +105,9 @@ async def delete_files_controller(
|
||||
response_model=ResponseSchema[None],
|
||||
dependencies=[Depends(AuthPermission(["module_monitor:resource:move"]))],
|
||||
)
|
||||
async def move_file_controller(data: ResourceMoveSchema) -> JSONResponse:
|
||||
async def move_file_controller(
|
||||
data: Annotated[ResourceMoveSchema, Body(description="移动文件参数")],
|
||||
) -> JSONResponse:
|
||||
await ResourceService.move_file(data=data)
|
||||
return SuccessResponse(msg="移动文件成功")
|
||||
|
||||
@@ -116,7 +118,9 @@ async def move_file_controller(data: ResourceMoveSchema) -> JSONResponse:
|
||||
response_model=ResponseSchema[None],
|
||||
dependencies=[Depends(AuthPermission(["module_monitor:resource:copy"]))],
|
||||
)
|
||||
async def copy_file_controller(data: ResourceCopySchema) -> JSONResponse:
|
||||
async def copy_file_controller(
|
||||
data: Annotated[ResourceCopySchema, Body(description="复制文件参数")],
|
||||
) -> JSONResponse:
|
||||
await ResourceService.copy_file(data=data)
|
||||
return SuccessResponse(msg="复制文件成功")
|
||||
|
||||
@@ -127,7 +131,9 @@ async def copy_file_controller(data: ResourceCopySchema) -> JSONResponse:
|
||||
response_model=ResponseSchema[None],
|
||||
dependencies=[Depends(AuthPermission(["module_monitor:resource:rename"]))],
|
||||
)
|
||||
async def rename_file_controller(data: ResourceRenameSchema) -> JSONResponse:
|
||||
async def rename_file_controller(
|
||||
data: Annotated[ResourceRenameSchema, Body(description="重命名文件参数")],
|
||||
) -> JSONResponse:
|
||||
await ResourceService.rename_file(data=data)
|
||||
return SuccessResponse(msg="重命名文件成功")
|
||||
|
||||
@@ -139,7 +145,7 @@ async def rename_file_controller(data: ResourceRenameSchema) -> JSONResponse:
|
||||
dependencies=[Depends(AuthPermission(["module_monitor:resource:create_dir"]))],
|
||||
)
|
||||
async def create_directory_controller(
|
||||
data: ResourceCreateDirSchema,
|
||||
data: Annotated[ResourceCreateDirSchema, Body(description="创建目录参数")],
|
||||
) -> JSONResponse:
|
||||
await ResourceService.create_directory(data=data)
|
||||
return SuccessResponse(msg="创建目录成功")
|
||||
@@ -151,7 +157,10 @@ async def create_directory_controller(
|
||||
response_model=ResponseSchema[None],
|
||||
dependencies=[Depends(AuthPermission(["module_monitor:resource:export"]))],
|
||||
)
|
||||
async def export_resource_list_controller(request: Request, search: Annotated[ResourceSearchQueryParam, Depends()]) -> StreamingResponse:
|
||||
async def export_resource_list_controller(
|
||||
request: Request,
|
||||
search: Annotated[ResourceSearchQueryParam, Query()],
|
||||
) -> StreamingResponse:
|
||||
result_dict_list = await ResourceService.get_resources_list(search=search, base_url=str(request.base_url))
|
||||
export_result = await ResourceService.export_resource(data_list=result_dict_list)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user