35 lines
828 B
Python
35 lines
828 B
Python
from typing import Any, Generic, Optional, TypeVar
|
|
from pydantic import BaseModel, Field
|
|
# from pydantic.generics import GenericModel
|
|
|
|
T = TypeVar('T')
|
|
|
|
class StandardResponse(BaseModel, Generic[T]):
|
|
"""标准API响应格式"""
|
|
code: int = 200
|
|
message: Optional[str] = None
|
|
data: Optional[T] = None
|
|
|
|
class Config:
|
|
json_schema_extra = {
|
|
"example": {
|
|
"code": 200,
|
|
"message": None,
|
|
"data": {}
|
|
}
|
|
}
|
|
|
|
class ErrorResponse(BaseModel):
|
|
"""错误响应格式"""
|
|
code: int = 500
|
|
message: str
|
|
data: None = None
|
|
|
|
class Config:
|
|
json_schema_extra = {
|
|
"example": {
|
|
"code": 500,
|
|
"message": "业务处理错误",
|
|
"data": None
|
|
}
|
|
} |