Files
dashboard/backend/response.py
T
2026-03-04 18:17:34 +08:00

37 lines
903 B
Python

from typing import Optional, Any, List, Union
from pydantic import BaseModel, ConfigDict
class PageData(BaseModel):
"""分页数据"""
model_config = ConfigDict(from_attributes=True)
items: List[Any]
total: int
skip: int
limit: int
class ApiResponse(BaseModel):
"""统一 API 响应格式"""
model_config = ConfigDict(from_attributes=True)
code: int = 0
msg: str = "success"
data: Optional[Any] = None
@classmethod
def success(cls, data: Any = None, msg: str = "success"):
"""成功响应"""
return cls(code=1, msg=msg, data=data)
@classmethod
def error(cls, msg: str = "error", code: int = 0):
"""错误响应"""
return cls(code=code, msg=msg, data=None)
@classmethod
def no_data(cls, msg: str = "no data"):
"""无数据响应"""
return cls(code=2, msg=msg, data=None)