55 lines
1.6 KiB
Python
Raw Permalink Normal View History

2025-04-30 16:57:46 +08:00
"""
基础API模型模块
包含通用的API请求和响应的数据模型
"""
from typing import Optional, Any, Generic, TypeVar, Dict, List
from pydantic import BaseModel, Field
# 定义泛型类型变量
T = TypeVar('T')
class ApiResponse(BaseModel, Generic[T]):
"""
标准API响应模型
适用于所有API响应
Args:
code: 状态码
message: 响应消息
data: 响应数据
"""
code: int = Field(200, description="状态码200表示成功")
message: str = Field("操作成功", description="响应消息")
data: Optional[T] = Field(None, description="响应数据")
class PaginationParams(BaseModel):
"""
分页查询参数
适用于所有需要分页的接口
"""
pageNum: int = Field(1, ge=1, description="页码默认为1")
pageSize: int = Field(10, ge=1, le=100, description="每页记录数默认为10")
class SortParams(BaseModel):
"""
排序参数
适用于所有需要排序的接口
"""
sortField: Optional[str] = Field(None, description="排序字段")
sortOrder: str = Field("desc", description="排序方式asc升序、desc降序")
class PageResult(BaseModel, Generic[T]):
"""
分页结果模型
适用于所有返回分页数据的接口
"""
total: int = Field(..., description="总记录数")
list: List[T] = Field(..., description="数据列表")
pageNum: int = Field(..., description="当前页码")
pageSize: int = Field(..., description="每页记录数")
totalPages: int = Field(..., description="总页数")