29 lines
692 B
Go
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)
|
|
}
|