压测 dome
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

123 lines
2.9 KiB

package httpresult
import (
// "go-scaffold/common/logwriter"
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
)
const defaultErrCode = 1001
const defaultSuccessCode = 200
type CodeError struct {
Code int `json:"code"`
Message string `json:"msg"`
Success bool `json:"success"`
ErrMsg interface{} `json:"err_msg"`
}
type CodeErrorResponse struct {
Code int `json:"code"`
Message string `json:"msg"`
Success bool `json:"success"`
ErrMsg interface{} `json:"err_msg"`
}
type CodeSuccessResponse struct {
Code int `json:"code"`
Message string `json:"msg"`
Success bool `json:"success"`
Data interface{} `json:"data"`
}
// http 错误返回
func ErrorResult(msg string, err_msg interface{}) error {
return &CodeError{Code: defaultErrCode, Message: msg, Success: false, ErrMsg: err_msg}
}
// http 默认错误返回
func ErrorResultDefault(msg string) error {
return ErrorResult(msg, "")
}
// 错误方法返回
func (e *CodeError) Error() string {
return e.Message
}
// 错误数据赋值
func (e *CodeError) ErrorData() *CodeErrorResponse {
return &CodeErrorResponse{
Code: e.Code,
Message: e.Message,
Success: e.Success,
ErrMsg: e.ErrMsg,
}
}
// http 成功返回
func SuccessResult(msg string, data interface{}) (res *CodeSuccessResponse) {
return &CodeSuccessResponse{Code: defaultSuccessCode, Message: msg, Success: true, Data: data}
}
// http 参数错误返回
func ParamErrorResult(r *http.Request, w http.ResponseWriter, err error) {
msg := &CodeErrorResponse{
Code: 403,
Message: "请求参数错误",
Success: false,
ErrMsg: err.Error(),
}
httpx.WriteJson(w, http.StatusOK, msg)
}
// http 通用错误返回
func CommonErrorResult(r *http.Request, w http.ResponseWriter, err error) {
if r.PostForm != nil {
// logwriter.ErrorLogWriter(r.Context(), r.URL.Path, err.Error(), r.PostForm)
} else {
// logwriter.ErrorLogWriter(r.Context(), r.URL.Path, err.Error(), nil)
}
msg := &CodeErrorResponse{
Code: defaultErrCode,
Message: "请求失败",
Success: false,
ErrMsg: err.Error(),
}
httpx.WriteJson(w, http.StatusOK, msg)
}
// http auth错误返回
func AuthErrorResult(r *http.Request, w http.ResponseWriter, err error) {
msg := &CodeErrorResponse{
Code: 401,
Message: "鉴权失败",
Success: false,
ErrMsg: err.Error(),
}
httpx.WriteJson(w, http.StatusUnauthorized, msg)
}
// http 权限错误返回
func PermissionErrorResult(r *http.Request, w http.ResponseWriter, err error) {
msg := &CodeErrorResponse{
Code: 403,
Message: "权限校验失败",
Success: false,
ErrMsg: err.Error(),
}
httpx.WriteJson(w, 403, msg)
}
// http 503错误返回
func ServiceUnavailableErrorResult(w http.ResponseWriter, massage string) {
msg := &CodeErrorResponse{
Code: 503,
Message: "服务不可用",
Success: false,
ErrMsg: nil,
}
httpx.WriteJson(w, 503, msg)
}