Files
shanxia2.0/backend/app/core/response.py
T
2026-05-12 16:35:07 +08:00

48 lines
1.1 KiB
Python

"""统一响应格式"""
from typing import Any, Generic, Optional, TypeVar, List
from pydantic import BaseModel, Field
T = TypeVar("T")
class ResponseModel(BaseModel, Generic[T]):
"""通用响应格式"""
code: int = 200
message: str = "success"
data: Optional[T] = None
timestamp: int = 0
class Config:
from_attributes = True
class PageResult(BaseModel, Generic[T]):
"""分页响应格式"""
items: List[T] = Field(default_factory=list, serialization_alias="list")
total: int = 0
page: int = 1
pageSize: int = 10
totalPages: int = 0
def success_response(data: Any = None, message: str = "success") -> dict:
"""成功响应"""
from datetime import datetime
return {
"code": 200,
"message": message,
"data": data,
"timestamp": int(datetime.now().timestamp() * 1000)
}
def error_response(code: int = 400, message: str = "error", data: Any = None) -> dict:
"""错误响应"""
from datetime import datetime
return {
"code": code,
"message": message,
"data": data,
"timestamp": int(datetime.now().timestamp() * 1000)
}