20260507213409

This commit is contained in:
oneao committed 2026-05-07 21:34:09 +08:00
1 parent 3070eac71b
commit 4c7f516a03
204 files changed
+3623

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
package httpx
import (
"reflect"
"github.com/go-playground/validator/v10"
"github.com/gofiber/fiber/v3"
)
var validate = validator.New()
func BindAndValidate(c fiber.Ctx, v any) error {
// 1️⃣ 绑定 JSON
if err := c.Bind().Body(v); err != nil {
return err
}
// 2️⃣ 只允许 struct 校验(先不支持 slice)
rv := reflect.ValueOf(v)
if rv.Kind() == reflect.Ptr {
rv = rv.Elem()
}
// 如果是 slice,直接跳过校验
if rv.Kind() == reflect.Slice {
return nil
}
// 3️⃣ struct 校验
if err := validate.Struct(v); err != nil {
return err
}
return nil
}