Ai_GirlFriend/lover/response.py
2026-02-03 17:13:56 +08:00

25 lines
703 B
Python

from typing import Generic, Optional, TypeVar
from pydantic import BaseModel, Field
T = TypeVar("T")
class ApiResponse(BaseModel, Generic[T]):
"""
统一响应包装,便于前端通过 code 判断成功/失败。
code: 1 表示成功,非 1 由 HTTP 状态码填充(错误)。
"""
code: int = Field(default=1)
msg: str = Field(default="ok")
data: Optional[T] = None
def success_response(data: Optional[T] = None, msg: str = "ok") -> ApiResponse[T]:
return ApiResponse[T](code=1, msg=msg, data=data)
def error_response(msg: str = "error", code: int = 0, data: Optional[T] = None) -> ApiResponse[T]:
return ApiResponse[T](code=code, msg=msg, data=data)