mirror of
https://github.com/fastapi-practices/fastapi_best_architecture.git
synced 2026-03-13 09:31:31 +08:00
Optimize routes to better align with RESTful (#673)
* Optimize routes to better align with RESTful * Add codes endpoint description * Update jinja templates * fix typo * fix sql
This commit is contained in:
@@ -9,6 +9,6 @@ from backend.plugin.code_generator.api.v1.gen import router as gen_router
|
||||
|
||||
v1 = APIRouter(prefix=f'{settings.FASTAPI_API_V1_PATH}/gen', tags=['代码生成'])
|
||||
|
||||
v1.include_router(gen_router, prefix='/tables')
|
||||
v1.include_router(business_router, prefix='/businesses')
|
||||
v1.include_router(model_router, prefix='/models')
|
||||
v1.include_router(gen_router, prefix='/codes')
|
||||
|
||||
@@ -20,12 +20,6 @@ from backend.plugin.code_generator.service.column_service import gen_model_servi
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get('/all', summary='获取所有代码生成业务', dependencies=[DependsJwtAuth])
|
||||
async def get_all_businesses() -> ResponseSchemaModel[list[GetGenBusinessDetail]]:
|
||||
data = await gen_business_service.get_all()
|
||||
return response_base.success(data=data)
|
||||
|
||||
|
||||
@router.get('/{pk}', summary='获取代码生成业务详情', dependencies=[DependsJwtAuth])
|
||||
async def get_business(
|
||||
pk: Annotated[int, Path(description='业务 ID')],
|
||||
@@ -34,11 +28,17 @@ async def get_business(
|
||||
return response_base.success(data=data)
|
||||
|
||||
|
||||
@router.get('', summary='获取所有代码生成业务', dependencies=[DependsJwtAuth])
|
||||
async def get_all_businesses() -> ResponseSchemaModel[list[GetGenBusinessDetail]]:
|
||||
data = await gen_business_service.get_all()
|
||||
return response_base.success(data=data)
|
||||
|
||||
|
||||
@router.get('/{pk}/models', summary='获取代码生成业务所有模型', dependencies=[DependsJwtAuth])
|
||||
async def get_business_all_models(
|
||||
pk: Annotated[int, Path(description='业务 ID')],
|
||||
) -> ResponseSchemaModel[list[GetGenModelDetail]]:
|
||||
data = await gen_model_service.get_by_business(business_id=pk)
|
||||
data = await gen_model_service.get_models(business_id=pk)
|
||||
return response_base.success(data=data)
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ async def get_business_all_models(
|
||||
summary='创建代码生成业务',
|
||||
deprecated=True,
|
||||
dependencies=[
|
||||
Depends(RequestPermission('gen:code:business:add')),
|
||||
Depends(RequestPermission('codegen:business:add')),
|
||||
DependsRBAC,
|
||||
],
|
||||
)
|
||||
@@ -60,7 +60,7 @@ async def create_business(obj: CreateGenBusinessParam) -> ResponseModel:
|
||||
'/{pk}',
|
||||
summary='更新代码生成业务',
|
||||
dependencies=[
|
||||
Depends(RequestPermission('gen:code:business:edit')),
|
||||
Depends(RequestPermission('codegen:business:edit')),
|
||||
DependsRBAC,
|
||||
],
|
||||
)
|
||||
@@ -77,7 +77,7 @@ async def update_business(
|
||||
'/{pk}',
|
||||
summary='删除代码生成业务',
|
||||
dependencies=[
|
||||
Depends(RequestPermission('gen:code:business:del')),
|
||||
Depends(RequestPermission('codegen:business:del')),
|
||||
DependsRBAC,
|
||||
],
|
||||
)
|
||||
|
||||
@@ -30,7 +30,7 @@ async def get_model(pk: Annotated[int, Path(description='模型 ID')]) -> Respon
|
||||
'',
|
||||
summary='创建代码生成模型',
|
||||
dependencies=[
|
||||
Depends(RequestPermission('gen:code:model:add')),
|
||||
Depends(RequestPermission('codegen:model:add')),
|
||||
DependsRBAC,
|
||||
],
|
||||
)
|
||||
@@ -43,7 +43,7 @@ async def create_model(obj: CreateGenModelParam) -> ResponseModel:
|
||||
'/{pk}',
|
||||
summary='更新代码生成模型',
|
||||
dependencies=[
|
||||
Depends(RequestPermission('gen:code:model:edit')),
|
||||
Depends(RequestPermission('codegen:model:edit')),
|
||||
DependsRBAC,
|
||||
],
|
||||
)
|
||||
@@ -58,7 +58,7 @@ async def update_model(pk: Annotated[int, Path(description='模型 ID')], obj: U
|
||||
'/{pk}',
|
||||
summary='删除代码生成模型',
|
||||
dependencies=[
|
||||
Depends(RequestPermission('gen:code:model:del')),
|
||||
Depends(RequestPermission('codegen:model:del')),
|
||||
DependsRBAC,
|
||||
],
|
||||
)
|
||||
|
||||
@@ -16,7 +16,7 @@ from backend.plugin.code_generator.service.gen_service import gen_service
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get('', summary='获取数据库表')
|
||||
@router.get('/tables', summary='获取数据库表')
|
||||
async def get_all_tables(
|
||||
table_schema: Annotated[str, Query(description='数据库名')] = 'fba',
|
||||
) -> ResponseSchemaModel[list[str]]:
|
||||
@@ -25,10 +25,10 @@ async def get_all_tables(
|
||||
|
||||
|
||||
@router.post(
|
||||
'/import',
|
||||
'/imports',
|
||||
summary='导入代码生成业务和模型列',
|
||||
dependencies=[
|
||||
Depends(RequestPermission('gen:code:import')),
|
||||
Depends(RequestPermission('codegen:table:import')),
|
||||
DependsRBAC,
|
||||
],
|
||||
)
|
||||
@@ -37,24 +37,24 @@ async def import_table(obj: ImportParam) -> ResponseModel:
|
||||
return response_base.success()
|
||||
|
||||
|
||||
@router.get('/{pk}/preview', summary='生成代码预览', dependencies=[DependsJwtAuth])
|
||||
@router.get('/{pk}/previews', summary='代码生成预览', dependencies=[DependsJwtAuth])
|
||||
async def preview_code(pk: Annotated[int, Path(description='业务 ID')]) -> ResponseSchemaModel[dict[str, bytes]]:
|
||||
data = await gen_service.preview(pk=pk)
|
||||
return response_base.success(data=data)
|
||||
|
||||
|
||||
@router.get('/{pk}/code/path', summary='获取代码生成路径', dependencies=[DependsJwtAuth])
|
||||
async def generate_path(pk: Annotated[int, Path(description='业务 ID')]) -> ResponseSchemaModel[list[str]]:
|
||||
@router.get('/{pk}/paths', summary='获取代码生成路径', dependencies=[DependsJwtAuth])
|
||||
async def get_generate_paths(pk: Annotated[int, Path(description='业务 ID')]) -> ResponseSchemaModel[list[str]]:
|
||||
data = await gen_service.get_generate_path(pk=pk)
|
||||
return response_base.success(data=data)
|
||||
|
||||
|
||||
@router.post(
|
||||
'/{pk}/code',
|
||||
'/{pk}/generation',
|
||||
summary='代码生成',
|
||||
description='文件磁盘写入,请谨慎操作',
|
||||
dependencies=[
|
||||
Depends(RequestPermission('gen:code:write')),
|
||||
Depends(RequestPermission('codegen:local:write')),
|
||||
DependsRBAC,
|
||||
],
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user