新增响应体与请求结构绑定

This commit is contained in:
shiran
2025-03-10 12:06:59 +08:00
parent b0650643bc
commit 64bda39e10
3 changed files with 38 additions and 1 deletions
+9 -1
View File
@@ -1,10 +1,18 @@
package apps
import (
"apiServer_service/models/request_models"
"apiServer_service/utils/loger"
"apiServer_service/utils/request"
"context"
"github.com/cloudwego/hertz/pkg/app"
)
func Ping(ctx context.Context, c *app.RequestContext) {
c.Data(200, "text/plain", []byte("pong"))
var requests request_models.IndexRequest
if err := request.BindRequestStruct(c, &requests); err != nil {
return
}
loger.Info("Ping", requests.Name)
request.Success(c, "pong")
}
+11
View File
@@ -0,0 +1,11 @@
package request_models
import "mime/multipart"
type IndexRequest struct {
Id uint `form:"id,required" query:"id,required" wd:"$>0"`
Name string `form:"name,required" query:"name,required" wd:"len($)>0"`
File *multipart.FileHeader `form:"file" query:"file" wd:"len($)>0"`
UpdateType string `form:"update_type" query:"update_type" wd:"len($)>0"`
OpenDown bool `form:"open_down" query:"open_down" default:"false"`
}
+18
View File
@@ -0,0 +1,18 @@
package request
import (
"apiServer_service/utils/loger"
"fmt"
"github.com/cloudwego/hertz/pkg/app"
)
// BindRequestStruct 结构体参数绑定
func BindRequestStruct(c *app.RequestContext, request interface{}) error {
err := c.BindAndValidate(request)
if err != nil {
loger.Debug("BindRequestStruct", fmt.Sprintf("参数错误: %v", err))
BadRequest(c, "参数错误")
return err
}
return nil
}