2026-05-30 07:23:33 +08:00
|
|
|
|
"""
|
|
|
|
|
|
公共响应模型模块
|
|
|
|
|
|
|
|
|
|
|
|
提供全系统统一的 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-30 07:23:33 +08:00
|
|
|
|
"""通用消息响应数据模型,用于返回操作结果提示信息。"""
|
|
|
|
|
|
|
2026-05-14 13:51:06 +08:00
|
|
|
|
success: bool = True
|
2026-05-30 07:23:33 +08:00
|
|
|
|
"""操作是否成功"""
|
|
|
|
|
|
|
2026-05-14 13:51:06 +08:00
|
|
|
|
detail: str | None = None
|
2026-05-30 07:23:33 +08:00
|
|
|
|
"""详细说明信息,如错误原因或提示内容"""
|
2026-05-14 13:51:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EmptyData(BaseModel):
|
2026-05-30 07:23:33 +08:00
|
|
|
|
"""空数据占位模型,用于无需返回业务数据的接口响应。"""
|
2026-05-14 13:51:06 +08:00
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def success_payload(data: Any, message: str = "success") -> dict[str, Any]:
|
2026-05-30 07:23:33 +08:00
|
|
|
|
"""构造标准成功响应字典。
|
|
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
|
data: 响应业务数据
|
|
|
|
|
|
message: 响应提示信息,默认为 "success"
|
|
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
包含 code、message、data 三个字段的标准响应字典
|
|
|
|
|
|
"""
|
2026-05-14 13:51:06 +08:00
|
|
|
|
return {
|
|
|
|
|
|
"code": ErrorCode.SUCCESS,
|
|
|
|
|
|
"message": message,
|
|
|
|
|
|
"data": data,
|
|
|
|
|
|
}
|