Develop py update schema (#37)

* feature: implement endpoints with multi-level response models
* refactor: move `/health` and `/config` endpoints to system module, remove example from base schemas
* refactor: remove unused get_standard_response_model()
This commit is contained in:
Jason Wang
2025-10-30 16:24:37 +08:00
committed by GitHub
parent 155603b1ca
commit e0884ab048
15 changed files with 89 additions and 71 deletions

View File

@@ -108,8 +108,7 @@ async def create_mapping(
response_data = DatasetMappingCreateResponse(
id=mapping.id,
labeling_project_id=str(mapping.labeling_project_id),
labeling_project_name=mapping.name or project_name,
message="Dataset mapping created successfully"
labeling_project_name=mapping.name or project_name
)
return StandardResponse(
@@ -341,8 +340,7 @@ async def delete_mapping(
message="success",
data=DeleteDatasetResponse(
id=id,
status="success",
message=f"Successfully deleted mapping and Label Studio project '{labeling_project_name}'"
status="success"
)
)

View File

@@ -1,24 +1,24 @@
from .mapping import (
DatasetMappingBase,
_DatasetMappingBase,
DatasetMappingCreateRequest,
DatasetMappingCreateResponse,
DatasetMappingUpdateRequest,
DatasetMappingResponse,
DeleteDatasetResponse
DeleteDatasetResponse,
)
from .sync import (
SyncDatasetRequest,
SyncDatasetResponse
SyncDatasetResponse,
)
__all__ = [
"DatasetMappingBase",
"_DatasetMappingBase",
"DatasetMappingCreateRequest",
"DatasetMappingCreateResponse",
"DatasetMappingUpdateRequest",
"DatasetMappingResponse",
"SyncDatasetRequest",
"SyncDatasetResponse",
"DeleteDatasetResponse"
"DeleteDatasetResponse",
]

View File

@@ -3,12 +3,13 @@ from typing import Optional
from datetime import datetime
from app.module.shared.schema import BaseResponseModel
from app.module.shared.schema import StandardResponse
class DatasetMappingBase(BaseResponseModel):
class _DatasetMappingBase(BaseResponseModel):
"""数据集映射 基础模型"""
dataset_id: str = Field(..., description="源数据集ID")
class DatasetMappingCreateRequest(DatasetMappingBase):
class DatasetMappingCreateRequest(_DatasetMappingBase):
"""数据集映射 创建 请求模型"""
pass
@@ -17,13 +18,12 @@ class DatasetMappingCreateResponse(BaseResponseModel):
id: str = Field(..., description="映射UUID")
labeling_project_id: str = Field(..., description="Label Studio项目ID")
labeling_project_name: str = Field(..., description="Label Studio项目名称")
message: str = Field(..., description="响应消息")
class DatasetMappingUpdateRequest(BaseResponseModel):
"""数据集映射 更新 请求模型"""
dataset_id: Optional[str] = Field(None, description="源数据集ID")
class DatasetMappingResponse(DatasetMappingBase):
class DatasetMappingResponse(_DatasetMappingBase):
"""数据集映射 查询 响应模型"""
id: str = Field(..., description="映射UUID")
labeling_project_id: str = Field(..., description="标注项目ID")
@@ -38,5 +38,4 @@ class DatasetMappingResponse(DatasetMappingBase):
class DeleteDatasetResponse(BaseResponseModel):
"""删除数据集响应模型"""
id: str = Field(..., description="映射UUID")
status: str = Field(..., description="删除状态")
message: str = Field(..., description="响应消息")
status: str = Field(..., description="删除状态")

View File

@@ -1,8 +1,7 @@
from pydantic import Field
from typing import Optional
from datetime import datetime
from app.module.shared.schema import BaseResponseModel
from app.module.shared.schema import StandardResponse
class SyncDatasetRequest(BaseResponseModel):
@@ -17,3 +16,6 @@ class SyncDatasetResponse(BaseResponseModel):
synced_files: int = Field(..., description="已同步文件数量")
total_files: int = Field(0, description="总文件数量")
message: str = Field(..., description="响应消息")
class SyncDatasetResponseStd(StandardResponse[SyncDatasetResponse]):
pass