34 lines
837 B
Python
34 lines
837 B
Python
import time
|
|
from typing import Any, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class StandardResponse(BaseModel):
|
|
"""统一响应格式"""
|
|
code: int = 200
|
|
msg: str = "正常响应"
|
|
data: Any = None
|
|
timestamp: str = Field(default_factory=lambda: str(int(time.time())))
|
|
uuid: Optional[str] = None
|
|
|
|
@classmethod
|
|
def success(
|
|
cls,
|
|
data: Any = None,
|
|
msg: str = "正常响应",
|
|
code: int = 200,
|
|
uuid: str | None = None,
|
|
) -> "StandardResponse":
|
|
return cls(code=code, msg=msg, data=data, uuid=uuid)
|
|
|
|
@classmethod
|
|
def fail(
|
|
cls,
|
|
msg: str = "操作失败",
|
|
code: int = 500,
|
|
data: Any = None,
|
|
uuid: str | None = None,
|
|
) -> "StandardResponse":
|
|
return cls(code=code, msg=msg, data=data, uuid=uuid)
|