| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- """统一响应格式"""
- 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)
- }
|