36 lines
785 B
Go
36 lines
785 B
Go
// Package httpx 提供 Gin 服务的统一出入参收口:统一 JSON 响应格式、
|
|
// 错误码透出(CodeMsg)与请求参数绑定校验(Parse)。
|
|
package httpx
|
|
|
|
import (
|
|
"errors"
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// OkJson 以 200 OK 返回成功响应,统一格式:{code:0, msg:"OK", data:...}
|
|
func OkJson(c *gin.Context, data any) {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 0,
|
|
"msg": "OK",
|
|
"data": data,
|
|
})
|
|
}
|
|
|
|
// ErrorJson 统一错误出参: CodeMsg 携带的错误码透出(如 401), 其余折叠为 code 1。
|
|
func ErrorJson(c *gin.Context, err error) {
|
|
code := 1
|
|
msg := err.Error()
|
|
var cm *CodeMsg
|
|
if errors.As(err, &cm) {
|
|
code = cm.Code
|
|
msg = cm.Msg
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": code,
|
|
"msg": msg,
|
|
"data": nil,
|
|
})
|
|
}
|