27 lines
651 B
Go
27 lines
651 B
Go
|
|
package common
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"github.com/gin-gonic/gin"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
type ctxKey struct {
|
|||
|
|
desc string
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var (
|
|||
|
|
dataKey = ctxKey{"响应体内容"}
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// SetData 设置响应数据,可以设置为 nil,或者干脆不设置。此时会返回空的响应包装。
|
|||
|
|
func SetData(c *gin.Context, data any) {
|
|||
|
|
c.Set(dataKey, data)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// GetData 获取响应数据
|
|||
|
|
// 除了响应包装器,你不应该在任何地方调用该方法。因为响应数据的类型不一。
|
|||
|
|
// 如果你真的对响应数据处理。请在中间件向上下文中塞入数据,在 handler 中处理好。
|
|||
|
|
func GetData(c *gin.Context) any {
|
|||
|
|
data, _ := c.Get(dataKey)
|
|||
|
|
return data
|
|||
|
|
}
|