2025-04-30 16:57:46 +08:00

55 lines
1.6 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
基础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="总页数")