This commit is contained in:
oneao committed 2026-04-17 17:25:15 +08:00
1 parent e893ef2e48
commit b6415c0d65
25 files changed
+1495 -112

No files matched your search

@@ -1,6 +1,8 @@
package httpx
import (
"reflect"
"github.com/go-playground/validator/v10"
"github.com/gofiber/fiber/v3"
)
@@ -8,10 +10,23 @@ import (
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
}