Skip to content

模型验证#

Huma 提供了一个实用工具,使在正常的 HTTP 请求/响应流程之外验证模型变得更容易,例如在应用启动时加载示例或默认数据并验证其正确性。这只是内置验证功能的薄包装器,但它抽象了高效操作所需的一些样板代码,并提供了一个简单的 API。

code.go
type MyExample struct {
	Name string `json:"name" maxLength:"5"`
	Age int `json:"age" minimum:"25"`
}

var value any
json.Unmarshal([]byte(`{"name": "abcdefg", "age": 1}`), &value)

validator := huma.NewModelValidator()
errs := validator.Validate(reflect.TypeOf(MyExample{}), value)
if errs != nil {
	fmt.Println("Validation error", errs)
}

Concurrency

huma.ModelValidator 不是 goroutine 安全的!对于更灵活的验证,请直接使用 huma.Validate 函数,并提供您自己的注册表、路径缓冲区、验证结果结构等。

深入了解#