Files
zogo/httpx/handle.go
T

29 lines
692 B
Go

package httpx
import "github.com/gin-gonic/gin"
// Handle 泛型 handler 收口: Parse 取参 → 调 logic → 统一出参。
// 试点新约定: 替代旧模板逐 handler 复制 Parse/OkJson/ErrorJson 的样板。
func Handle[TReq any, TResp any](c *gin.Context, fn func(req *TReq) (*TResp, error)) {
var req TReq
if err := Parse(c, &req); err != nil {
ErrorJson(c, err)
return
}
resp, err := fn(&req)
if err != nil {
ErrorJson(c, err)
return
}
OkJson(c, resp)
}
// HandleResult 统一收口:err 非 nil 走 ErrorJson,否则 OkJson(data)。
func HandleResult(c *gin.Context, data any, err error) {
if err != nil {
ErrorJson(c, err)
return
}
OkJson(c, data)
}