package httpdata import ( "errors" "git.blauwelle.com/go/crate/runtimehelper" ) type Response struct { Data any `json:"data,omitempty"` Code Code `json:"code"` Message string `json:"message,omitempty"` Debug string `json:"debug,omitempty"` Traceback []runtimehelper.Frame `json:"traceback,omitempty"` } type PageData struct { List any `json:"list"` PageIndex int64 `json:"pageIndex"` // >=1 PageSize int64 `json:"pageSize"` // >=1 Total int64 `json:"total"` // maybe 0 } func NewOkResponse(data any) Response { return Response{ Code: CodeOK, Message: "", Data: data, } } func NewErrorResponse(err error) Response { ue := UniverseError{} if !errors.As(err, &ue) { response := Response{ Code: CodeUnknown, Message: "未知错误", } if FlagDebug { response.Debug = err.Error() response.Traceback = runtimehelper.Stack(1, maximumFrames) } return response } return Response{ Code: ue.Code, Message: ue.Message, Debug: ue.Debug, Traceback: ue.Traceback, } }