dingdanquanliucheng/backend/app/schemas/common.py

47 lines
1.1 KiB
Python
Raw Normal View History

"""
公共响应模型模块
提供全系统统一的 API 响应数据模型和便捷函数包括
- 成功/失败消息体
- 空数据体
- 标准化成功响应构造函数
"""
2026-05-14 13:51:06 +08:00
from typing import Any
2026-05-14 10:15:51 +08:00
2026-05-14 13:51:06 +08:00
from pydantic import BaseModel, Field
2026-05-14 10:15:51 +08:00
2026-05-14 13:51:06 +08:00
from backend.app.core.error_codes import ErrorCode
2026-05-14 10:15:51 +08:00
2026-05-14 13:51:06 +08:00
class MessageData(BaseModel):
"""通用消息响应数据模型,用于返回操作结果提示信息。"""
2026-05-14 13:51:06 +08:00
success: bool = True
"""操作是否成功"""
2026-05-14 13:51:06 +08:00
detail: str | None = None
"""详细说明信息,如错误原因或提示内容"""
2026-05-14 13:51:06 +08:00
class EmptyData(BaseModel):
"""空数据占位模型,用于无需返回业务数据的接口响应。"""
2026-05-14 13:51:06 +08:00
pass
def success_payload(data: Any, message: str = "success") -> dict[str, Any]:
"""构造标准成功响应字典。
Args:
data: 响应业务数据
message: 响应提示信息默认为 "success"
Returns:
包含 codemessagedata 三个字段的标准响应字典
"""
2026-05-14 13:51:06 +08:00
return {
"code": ErrorCode.SUCCESS,
"message": message,
"data": data,
}