25 lines
703 B
Python
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)
|