From 7ddd96bcb706b93d05763d47e799eaa54255e757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Fri, 7 Feb 2025 18:14:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE=E8=A7=A3?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- router/controller.go | 12 +++++++++++- router/define.go | 14 ++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/router/controller.go b/router/controller.go index 8c6f5da..22ec1cf 100644 --- a/router/controller.go +++ b/router/controller.go @@ -154,7 +154,17 @@ func (c controller) parseParamConfig(formDataType reflect.Type) []UriParam { if jsonTag == "" { jsonTag = structField.Name } - + validate := strings.TrimSpace(structField.Tag.Get(TagNameBinding)) + if len(validate) == 0 { + validate = strings.TrimSpace(structField.Tag.Get(TagNameValidate)) + } + res = append(res, UriParam{ + Field: structField.Name, + Name: jsonTag, + Type: structField.Type.String(), + Validate: validate, + ErrorMsg: "", + }) } return res } diff --git a/router/define.go b/router/define.go index 4632d9d..b8121f7 100644 --- a/router/define.go +++ b/router/define.go @@ -21,7 +21,7 @@ const ( TagNamePath = "path" // 接口的请求路径 TagNameMethod = "method" // 接口的请求方法 TagNameUriTag = "tag" // 接口的tag - TagNameDesc = "desc" // 接口的描述 + TagNameDesc = "desc" // 接口/接口参数的描述 TagNameOutputStrict = "output_strict" // 接口数据是否为严格模式 : 严格模式, 响应数据必须是结构体/map,非严格模式返回任意值 TagNameBinding = "binding" // gin 内置的验证规则tag TagNameValidate = "validate" // validator v10 默认的验证规则tag @@ -51,13 +51,11 @@ type UriConfig struct { // // Date : 15:40 2025/1/27 type UriParam struct { - Field string `json:"field"` // 结构体字段 - Name string `json:"name"` // 参数名称 - Type string `json:"type"` // 参数类型 - Validate string `json:"validate"` // 验证规则: validator/v10 库 - ErrorMsg string `json:"error_msg"` // 验证失败的错误信息 - DisableAutoType bool `json:"disable_auto_type"` // 禁用自动类型转换 - Sort string `json:"sort"` // 参数读取顺序: 默认 POST : body > query > path GET : query > path > body + Field string `json:"field"` // 结构体字段 + Name string `json:"name"` // 参数名称 + Type string `json:"type"` // 参数类型 + Validate string `json:"validate"` // 验证规则: validator/v10 库 + ErrorMsg string `json:"error_msg"` // 验证失败的错误信息 } const (