MCPcopy Create free account
hub / github.com/GoSimplicity/LinkMe / WrapBody

Function WrapBody

pkg/ginp/wrapper.go:10–30  ·  view source on GitHub ↗

WrapBody 是一个中间件,用于包裹业务逻辑函数,自动绑定请求体、处理响应并集中管理错误处理。

(bizFn func(ctx *gin.Context, req Req) (Result, error))

Source from the content-addressed store, hash-verified

8
9// WrapBody 是一个中间件,用于包裹业务逻辑函数,自动绑定请求体、处理响应并集中管理错误处理。
10func WrapBody[Req any](bizFn func(ctx *gin.Context, req Req) (Result, error)) gin.HandlerFunc {
11 return func(ctx *gin.Context) {
12 var req Req
13 if err := ctx.ShouldBindJSON(&req); err != nil {
14 apiresponse.BadRequestError(ctx, "无效的请求参数")
15 return
16 }
17
18 res, err := bizFn(ctx, req)
19 if err != nil {
20 apiresponse.InternalServerErrorWithDetails(ctx, gin.H{"error": err.Error()}, res.Msg)
21 return
22 }
23
24 ctx.JSON(http.StatusOK, apiresponse.ApiResponse{
25 Code: res.Code,
26 Data: res.Data,
27 Message: res.Msg,
28 })
29 }
30}
31
32func WrapParam[Req any](bizFn func(ctx *gin.Context, req Req) (Result, error)) gin.HandlerFunc {
33 return func(ctx *gin.Context) {

Callers 5

RegisterRoutesMethod · 0.85
RegisterRoutesMethod · 0.85
RegisterRoutesMethod · 0.85
RegisterRoutesMethod · 0.85
RegisterRoutesMethod · 0.85

Calls 2

BadRequestErrorFunction · 0.92

Tested by

no test coverage detected