30 lines
924 B
Go
30 lines
924 B
Go
// Package resp 提供统一的 JSON 响应格式:{code, msg, data}
|
||
// code=0 表示成功,非 0 表示业务失败
|
||
package resp
|
||
|
||
import (
|
||
"net/http"
|
||
|
||
"github.com/gin-gonic/gin"
|
||
)
|
||
|
||
// OK 成功响应,data 为业务数据
|
||
func OK(c *gin.Context, data any) {
|
||
c.JSON(http.StatusOK, gin.H{"code": 0, "msg": "ok", "data": data})
|
||
}
|
||
|
||
// Fail 业务失败响应(HTTP 仍为 200,靠 code 区分)
|
||
func Fail(c *gin.Context, msg string) {
|
||
c.JSON(http.StatusOK, gin.H{"code": 1, "msg": msg, "data": nil})
|
||
}
|
||
|
||
// Unauthorized 未登录/凭证失效响应(HTTP 401,前端据此跳转登录页)
|
||
func Unauthorized(c *gin.Context, msg string) {
|
||
c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"code": 401, "msg": msg, "data": nil})
|
||
}
|
||
|
||
// Forbidden 无权限响应(HTTP 403)
|
||
func Forbidden(c *gin.Context, msg string) {
|
||
c.AbortWithStatusJSON(http.StatusForbidden, gin.H{"code": 403, "msg": msg, "data": nil})
|
||
}
|