code upgrade

This commit is contained in:
白茶清欢 2025-02-18 10:08:45 +08:00
parent 0fc52fe51b
commit 1ff465b953
3 changed files with 33 additions and 33 deletions

View File

@ -330,7 +330,7 @@ func (g *Generate) ParseReadConfigParam(requestCfg *define.UriBaseConfig, baseRe
// 匿名字段, 直接对齐到当前的父级 // 匿名字段, 直接对齐到当前的父级
g.ParseReadConfigParam(requestCfg, baseReqCfg, inputType.Field(i).Type) g.ParseReadConfigParam(requestCfg, baseReqCfg, inputType.Field(i).Type)
} }
propertyName := ParseStructField.GetParamName(inputType.Field(i)) propertyName := ParseStructFieldTag.GetParamName(inputType.Field(i))
if propertyName == "-" { if propertyName == "-" {
continue continue
} }
@ -352,9 +352,9 @@ func (g *Generate) ParseReadConfigParam(requestCfg *define.UriBaseConfig, baseRe
baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{ baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{
Name: propertyName, Name: propertyName,
In: consts.SwaggerParameterInQuery, In: consts.SwaggerParameterInQuery,
Description: ParseStructField.GetParamDesc(inputType.Field(i)), Description: ParseStructFieldTag.GetParamDesc(inputType.Field(i)),
Required: ValidateRule.IsRequired(inputType.Field(i)), Required: ValidateRule.IsRequired(inputType.Field(i)),
Deprecated: ParseStructField.Deprecated(inputType.Field(i)), Deprecated: ParseStructFieldTag.Deprecated(inputType.Field(i)),
Schema: &define.Schema{ Schema: &define.Schema{
// Format: realInputTypeFormat, // Format: realInputTypeFormat,
Ref: g.getSchemaRef(schemaNameNext), Ref: g.getSchemaRef(schemaNameNext),
@ -368,9 +368,9 @@ func (g *Generate) ParseReadConfigParam(requestCfg *define.UriBaseConfig, baseRe
baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{ baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{
Name: propertyName, Name: propertyName,
In: consts.SwaggerParameterInQuery, In: consts.SwaggerParameterInQuery,
Description: ParseStructField.GetParamDesc(inputType.Field(i)), Description: ParseStructFieldTag.GetParamDesc(inputType.Field(i)),
Required: ValidateRule.IsRequired(inputType.Field(i)), Required: ValidateRule.IsRequired(inputType.Field(i)),
Deprecated: ParseStructField.Deprecated(inputType.Field(i)), Deprecated: ParseStructFieldTag.Deprecated(inputType.Field(i)),
Schema: &define.Schema{ Schema: &define.Schema{
Type: g.realBaseType2SwaggerType(inputType.Field(i).Type.String()), Type: g.realBaseType2SwaggerType(inputType.Field(i).Type.String()),
Format: realInputTypeFormat, Format: realInputTypeFormat,
@ -390,11 +390,11 @@ func (g *Generate) ParseReadConfigParam(requestCfg *define.UriBaseConfig, baseRe
if convertType := g.realBaseType2SwaggerType(fieldType.String()); !strings.HasPrefix(convertType, "[]") && convertType != inputType.Field(i).Type.Kind().String() { if convertType := g.realBaseType2SwaggerType(fieldType.String()); !strings.HasPrefix(convertType, "[]") && convertType != inputType.Field(i).Type.Kind().String() {
// 针对基础类型指针 // 针对基础类型指针
baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{ baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{
Name: ParseStructField.GetParamName(inputType.Field(i)), Name: ParseStructFieldTag.GetParamName(inputType.Field(i)),
In: consts.SwaggerParameterInQuery, In: consts.SwaggerParameterInQuery,
Description: ParseStructField.GetParamDesc(inputType.Field(i)), Description: ParseStructFieldTag.GetParamDesc(inputType.Field(i)),
Required: ValidateRule.IsRequired(inputType.Field(i)), Required: ValidateRule.IsRequired(inputType.Field(i)),
Deprecated: ParseStructField.Deprecated(inputType.Field(i)), Deprecated: ParseStructFieldTag.Deprecated(inputType.Field(i)),
Schema: &define.Schema{ Schema: &define.Schema{
Type: g.realBaseType2SwaggerType(inputType.Field(i).Type.String()), Type: g.realBaseType2SwaggerType(inputType.Field(i).Type.String()),
Items: nil, Items: nil,
@ -411,11 +411,11 @@ func (g *Generate) ParseReadConfigParam(requestCfg *define.UriBaseConfig, baseRe
} }
} else { } else {
baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{ baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{
Name: ParseStructField.GetParamName(inputType.Field(i)), Name: ParseStructFieldTag.GetParamName(inputType.Field(i)),
In: consts.SwaggerParameterInQuery, In: consts.SwaggerParameterInQuery,
Description: ParseStructField.GetParamDesc(inputType.Field(i)), Description: ParseStructFieldTag.GetParamDesc(inputType.Field(i)),
Required: ValidateRule.IsRequired(inputType.Field(i)), Required: ValidateRule.IsRequired(inputType.Field(i)),
Deprecated: ParseStructField.Deprecated(inputType.Field(i)), Deprecated: ParseStructFieldTag.Deprecated(inputType.Field(i)),
Schema: &define.Schema{ Schema: &define.Schema{
Type: g.realBaseType2SwaggerType(inputType.Field(i).Type.String()), Type: g.realBaseType2SwaggerType(inputType.Field(i).Type.String()),
Items: nil, Items: nil,
@ -510,7 +510,7 @@ func (g *Generate) AddComponentsSchema(rootSchemaName string, pkgPath string, in
g.handleAnonymousField(schemaName, inputType.Field(i)) g.handleAnonymousField(schemaName, inputType.Field(i))
continue continue
} }
propertyName := ParseStructField.GetParamName(inputType.Field(i)) propertyName := ParseStructFieldTag.GetParamName(inputType.Field(i))
if propertyName == "-" { if propertyName == "-" {
continue continue
} }
@ -527,8 +527,8 @@ func (g *Generate) AddComponentsSchema(rootSchemaName string, pkgPath string, in
g.docData.Components.Schemas[schemaName].Properties[propertyName] = &define.Property{ g.docData.Components.Schemas[schemaName].Properties[propertyName] = &define.Property{
Type: g.realBaseType2SwaggerType(g.realBaseType2SwaggerType(inputType.Field(i).Type.String())), Type: g.realBaseType2SwaggerType(g.realBaseType2SwaggerType(inputType.Field(i).Type.String())),
Format: inputType.Field(i).Type.String(), Format: inputType.Field(i).Type.String(),
Default: ParseStructField.GetDefaultValue(inputType.Field(i)), Default: ParseStructFieldTag.GetDefaultValue(inputType.Field(i)),
Description: ParseStructField.GetParamDesc(inputType.Field(i)), Description: ParseStructFieldTag.GetParamDesc(inputType.Field(i)),
} }
} }
continue continue
@ -542,7 +542,7 @@ func (g *Generate) AddComponentsSchema(rootSchemaName string, pkgPath string, in
g.docData.Components.Schemas[schemaName].Properties[propertyName] = &define.Property{ g.docData.Components.Schemas[schemaName].Properties[propertyName] = &define.Property{
Type: consts.SwaggerDataTypeObject, Type: consts.SwaggerDataTypeObject,
Format: inputType.Field(i).Type.String(), Format: inputType.Field(i).Type.String(),
Description: ParseStructField.GetParamDesc(inputType.Field(i)), Description: ParseStructFieldTag.GetParamDesc(inputType.Field(i)),
Properties: map[string]*define.Property{}, Properties: map[string]*define.Property{},
} }
} else if inputType.Field(i).Type.Kind() == reflect.Array || } else if inputType.Field(i).Type.Kind() == reflect.Array ||
@ -550,7 +550,7 @@ func (g *Generate) AddComponentsSchema(rootSchemaName string, pkgPath string, in
g.docData.Components.Schemas[schemaName].Properties[propertyName] = &define.Property{ g.docData.Components.Schemas[schemaName].Properties[propertyName] = &define.Property{
Type: consts.SwaggerDataTypeArray, Type: consts.SwaggerDataTypeArray,
Format: inputType.Field(i).Type.String(), Format: inputType.Field(i).Type.String(),
Description: ParseStructField.GetParamDesc(inputType.Field(i)), Description: ParseStructFieldTag.GetParamDesc(inputType.Field(i)),
Items: &define.PropertyXOf{ Items: &define.PropertyXOf{
Ref: g.getSchemaRef(g.parseSliceItem(schemaName, inputType.Field(i).Type)), Ref: g.getSchemaRef(g.parseSliceItem(schemaName, inputType.Field(i).Type)),
}, },
@ -564,8 +564,8 @@ func (g *Generate) AddComponentsSchema(rootSchemaName string, pkgPath string, in
g.docData.Components.Schemas[schemaName].Properties[propertyName] = &define.Property{ g.docData.Components.Schemas[schemaName].Properties[propertyName] = &define.Property{
Type: g.realBaseType2SwaggerType(inputType.Field(i).Type.String()), Type: g.realBaseType2SwaggerType(inputType.Field(i).Type.String()),
Format: inputType.Field(i).Type.String(), Format: inputType.Field(i).Type.String(),
Default: ParseStructField.GetDefaultValue(inputType.Field(i)), Default: ParseStructFieldTag.GetDefaultValue(inputType.Field(i)),
Description: ParseStructField.GetParamDesc(inputType.Field(i)), Description: ParseStructFieldTag.GetParamDesc(inputType.Field(i)),
} }
} }
// 设置参数各种属性 // 设置参数各种属性
@ -615,13 +615,13 @@ func (g *Generate) handleAnonymousField(schemaName string, field reflect.StructF
g.AddComponentsSchema(schemaName, handleType.Field(i).Type.PkgPath(), handleType.Field(i).Type) g.AddComponentsSchema(schemaName, handleType.Field(i).Type.PkgPath(), handleType.Field(i).Type)
continue continue
} else { } else {
paramName := ParseStructField.GetParamName(itemField) paramName := ParseStructFieldTag.GetParamName(itemField)
g.docData.Components.Schemas[schemaName].Properties[paramName] = &define.Property{ g.docData.Components.Schemas[schemaName].Properties[paramName] = &define.Property{
Type: g.realBaseType2SwaggerType(handleType.Field(i).Type.String()), Type: g.realBaseType2SwaggerType(handleType.Field(i).Type.String()),
Format: handleType.Field(i).Type.String(), Format: handleType.Field(i).Type.String(),
Enum: ValidateRule.Enum(handleType.Field(i)), Enum: ValidateRule.Enum(handleType.Field(i)),
Default: ParseStructField.GetDefaultValue(handleType.Field(i)), Default: ParseStructFieldTag.GetDefaultValue(handleType.Field(i)),
Description: ParseStructField.GetParamDesc(handleType.Field(i)), Description: ParseStructFieldTag.GetParamDesc(handleType.Field(i)),
} }
if ValidateRule.IsRequired(itemField) { if ValidateRule.IsRequired(itemField) {
g.docData.Components.Schemas[schemaName].Required = append(g.docData.Components.Schemas[schemaName].Required, paramName) g.docData.Components.Schemas[schemaName].Required = append(g.docData.Components.Schemas[schemaName].Required, paramName)
@ -708,11 +708,11 @@ func (g *Generate) realType2SwaggerType(realType string) string {
// //
// Date : 16:13 2025/2/13 // Date : 16:13 2025/2/13
func (g *Generate) setStructFieldProperty(schemaName string, structField reflect.StructField) { func (g *Generate) setStructFieldProperty(schemaName string, structField reflect.StructField) {
paramName := ParseStructField.GetParamName(structField) paramName := ParseStructFieldTag.GetParamName(structField)
if ValidateRule.IsRequired(structField) { if ValidateRule.IsRequired(structField) {
g.docData.Components.Schemas[schemaName].Required = append(g.docData.Components.Schemas[schemaName].Required, paramName) g.docData.Components.Schemas[schemaName].Required = append(g.docData.Components.Schemas[schemaName].Required, paramName)
} }
g.docData.Components.Schemas[schemaName].Properties[ParseStructField.GetParamName(structField)].Enum = ValidateRule.Enum(structField) g.docData.Components.Schemas[schemaName].Properties[ParseStructFieldTag.GetParamName(structField)].Enum = ValidateRule.Enum(structField)
} }
// parseBaseUriConfig 通过Meta字段解析Uri基础配置信息 // parseBaseUriConfig 通过Meta字段解析Uri基础配置信息
@ -769,7 +769,7 @@ func (g *Generate) parseBaseUriConfig(uriPrefix string, paramType reflect.Type)
responseContentType = consts.MimeTypeJson responseContentType = consts.MimeTypeJson
} }
res.OutputContentType = strings.Split(responseContentType, ",") res.OutputContentType = strings.Split(responseContentType, ",")
res.Summary = ParseStructField.Summary(metaField) res.Summary = ParseStructFieldTag.Summary(metaField)
if res.Method == "" { if res.Method == "" {
return nil, errors.New("baseCfg.Method is empty") return nil, errors.New("baseCfg.Method is empty")
} }

View File

@ -15,10 +15,10 @@ import (
) )
var ( var (
ParseStructField = parseStructField{} ParseStructFieldTag = parseStructFieldTag{}
) )
type parseStructField struct { type parseStructFieldTag struct {
} }
// GetParamName 获取参数名称 // GetParamName 获取参数名称
@ -26,7 +26,7 @@ type parseStructField struct {
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 21:58 2025/2/11 // Date : 21:58 2025/2/11
func (psf parseStructField) GetParamName(structField reflect.StructField) string { func (psf parseStructFieldTag) GetParamName(structField reflect.StructField) string {
paramNameTagList := []string{ paramNameTagList := []string{
define.TagJson, define.TagForm, define.TagJson, define.TagForm,
define.TagXml, define.TagYaml, define.TagXml, define.TagYaml,
@ -49,7 +49,7 @@ func (psf parseStructField) GetParamName(structField reflect.StructField) string
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 22:01 2025/2/11 // Date : 22:01 2025/2/11
func (psf parseStructField) GetParamDesc(structField reflect.StructField) string { func (psf parseStructFieldTag) GetParamDesc(structField reflect.StructField) string {
descTagList := []string{define.TagDesc, define.TagDescription} descTagList := []string{define.TagDesc, define.TagDescription}
for _, tag := range descTagList { for _, tag := range descTagList {
tagVal := structField.Tag.Get(tag) tagVal := structField.Tag.Get(tag)
@ -66,7 +66,7 @@ func (psf parseStructField) GetParamDesc(structField reflect.StructField) string
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 22:05 2025/2/11 // Date : 22:05 2025/2/11
func (psf parseStructField) GetDefaultValue(structField reflect.StructField) any { func (psf parseStructFieldTag) GetDefaultValue(structField reflect.StructField) any {
defaultTagList := []string{define.TagD, define.TagDefault} defaultTagList := []string{define.TagD, define.TagDefault}
fieldType := structField.Type.Kind().String() fieldType := structField.Type.Kind().String()
for _, tag := range defaultTagList { for _, tag := range defaultTagList {
@ -104,7 +104,7 @@ func (psf parseStructField) GetDefaultValue(structField reflect.StructField) any
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 15:30 2025/2/13 // Date : 15:30 2025/2/13
func (psf parseStructField) GetValidateRule(structField reflect.StructField) string { func (psf parseStructFieldTag) GetValidateRule(structField reflect.StructField) string {
defaultTagList := []string{define.TagValidate, define.TagBinding} defaultTagList := []string{define.TagValidate, define.TagBinding}
for _, tag := range defaultTagList { for _, tag := range defaultTagList {
if tagVal, exist := structField.Tag.Lookup(tag); exist && len(tagVal) > 0 { if tagVal, exist := structField.Tag.Lookup(tag); exist && len(tagVal) > 0 {
@ -119,7 +119,7 @@ func (psf parseStructField) GetValidateRule(structField reflect.StructField) str
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 21:12 2025/2/13 // Date : 21:12 2025/2/13
func (psf parseStructField) Deprecated(structField reflect.StructField) bool { func (psf parseStructFieldTag) Deprecated(structField reflect.StructField) bool {
defaultTagList := []string{define.TagDeprecated} defaultTagList := []string{define.TagDeprecated}
for _, tag := range defaultTagList { for _, tag := range defaultTagList {
if tagVal, exist := structField.Tag.Lookup(tag); exist && (tagVal == "1" || strings.ToLower(tagVal) == "true") { if tagVal, exist := structField.Tag.Lookup(tag); exist && (tagVal == "1" || strings.ToLower(tagVal) == "true") {
@ -134,7 +134,7 @@ func (psf parseStructField) Deprecated(structField reflect.StructField) bool {
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 15:15 2025/2/14 // Date : 15:15 2025/2/14
func (psf parseStructField) Summary(structField reflect.StructField) string { func (psf parseStructFieldTag) Summary(structField reflect.StructField) string {
defaultTagList := []string{define.TagSummary} defaultTagList := []string{define.TagSummary}
for _, tag := range defaultTagList { for _, tag := range defaultTagList {
if tagVal, exist := structField.Tag.Lookup(tag); exist && len(tagVal) > 0 { if tagVal, exist := structField.Tag.Lookup(tag); exist && len(tagVal) > 0 {

View File

@ -85,7 +85,7 @@ func (r validateRule) Enum(structField reflect.StructField) []any {
// Date : 15:29 2025/2/13 // Date : 15:29 2025/2/13
func (r validateRule) getValidateRuleTable(structField reflect.StructField) map[string]string { func (r validateRule) getValidateRuleTable(structField reflect.StructField) map[string]string {
res := map[string]string{} res := map[string]string{}
ruleStr := ParseStructField.GetValidateRule(structField) ruleStr := ParseStructFieldTag.GetValidateRule(structField)
if len(ruleStr) == 0 { if len(ruleStr) == 0 {
return res return res
} }