Golang 统一封装响应结点 - 轻松管理 - 响应结果封装
最编程
2024-04-08 12:18:28
...
package ginResult
import (
"encoding/json"
)
type Response struct {
Code int `json:"code"` // 错误码
Msg string `json:"msg"` // 错误描述
Data interface{} `json:"data"` // 返回数据
}
// 自定义响应信息
func (res *Response) WithMsg(message string) Response {
return Response{
Code: res.Code,
Msg: message,
Data: res.Data,
}
}
// 追加响应数据
func (res *Response) WithData(data interface{}) Response {
return Response{
Code: res.Code,
Msg: res.Msg,
Data: data,
}
}
// ToString 返回 JSON 格式的错误详情
func (res *Response) ToString() string {
err := &struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
}{
Code: res.Code,
Msg: res.Msg,
Data: res.Data,
}
raw, _ := json.Marshal(err)
return string(raw)
}
// 构造函数
func response(code int, msg string) *Response {
return &Response{
Code: code,
Msg: msg,
Data: nil,
}
}
统一管理错误码,方便管理
package ginResult
// 错误码规则:
// (1) 错误码需为 > 0 的数;
//
// (2) 错误码为 5 位数:
// ----------------------------------------------------------
// 第1位 2、3位 4、5位
// ----------------------------------------------------------
// 服务级错误码 模块级错误码 具体错误码
// ----------------------------------------------------------
var (
// OK
OK = response(200, "ok") // 通用成功
Err = response(500, "") // 通用错误
// 服务级错误码
ErrParam = response(10001, "参数有误")
ErrSignParam = response(10002, "签名参数有误")
// 模块级错误码 - 用户模块
ErrUserService = response(20100, "用户服务异常")
ErrUserPhone = response(20101, "用户手机号不合法")
ErrUserCaptcha = response(20102, "用户验证码有误")
// 库存模块
ErrOrderService = response(20200, "订单服务异常")
ErrOrderOutTime = response(20201, "订单超时")
// ......
)
上一篇: go 语言闭包 go 语言 Cuda
下一篇: 如何使用 Go 语言实现 LRU 缓存