Compare commits
3 Commits
feature/fi
...
dab7b0c811
Author | SHA1 | Date | |
---|---|---|---|
dab7b0c811 | |||
31a407e241 | |||
d23a5651af |
48
generate.go
48
generate.go
@ -270,7 +270,7 @@ func (g *Generate) getApiDocBaseCfg(baseCfg *define.UriBaseConfig, paramType ref
|
|||||||
Summary: baseCfg.Summary,
|
Summary: baseCfg.Summary,
|
||||||
Description: baseCfg.Description,
|
Description: baseCfg.Description,
|
||||||
ExternalDocs: nil,
|
ExternalDocs: nil,
|
||||||
OperationID: baseCfg.Method + "-" + baseCfg.Uri,
|
OperationID: wrapper.String(baseCfg.Method + "-" + baseCfg.Uri).Md5().Value,
|
||||||
Parameters: make([]*define.PathConfigParameter, 0),
|
Parameters: make([]*define.PathConfigParameter, 0),
|
||||||
RequestBody: &define.RequestBody{
|
RequestBody: &define.RequestBody{
|
||||||
Required: true,
|
Required: true,
|
||||||
@ -382,7 +382,28 @@ func (g *Generate) ParseReadConfigParam(requestCfg *define.UriBaseConfig, baseRe
|
|||||||
fieldType.Kind() == reflect.Map ||
|
fieldType.Kind() == reflect.Map ||
|
||||||
fieldType.Kind() == reflect.Array ||
|
fieldType.Kind() == reflect.Array ||
|
||||||
fieldType.Kind() == reflect.Slice {
|
fieldType.Kind() == reflect.Slice {
|
||||||
// TODO: 完善逻辑解析
|
if convertType := g.realBaseType2SwaggerType(fieldType.String()); !strings.HasPrefix(convertType, "[]") && convertType != inputType.Field(i).Type.Kind().String() {
|
||||||
|
// 针对基础类型指针
|
||||||
|
baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{
|
||||||
|
Name: ParseStructField.GetParamName(inputType.Field(i)),
|
||||||
|
In: consts.SwaggerParameterInQuery,
|
||||||
|
Description: ParseStructField.GetParamDesc(inputType.Field(i)),
|
||||||
|
Required: ValidateRule.IsRequired(inputType.Field(i)),
|
||||||
|
Deprecated: ParseStructField.Deprecated(inputType.Field(i)),
|
||||||
|
Schema: &define.Schema{
|
||||||
|
Type: g.realBaseType2SwaggerType(inputType.Field(i).Type.String()),
|
||||||
|
Items: nil,
|
||||||
|
Ref: "",
|
||||||
|
Format: realInputTypeFormat,
|
||||||
|
},
|
||||||
|
AllowEmptyValue: false,
|
||||||
|
Style: "",
|
||||||
|
Explode: false,
|
||||||
|
AllowReserved: false,
|
||||||
|
Ref: "",
|
||||||
|
})
|
||||||
|
continue
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{
|
baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{
|
||||||
Name: ParseStructField.GetParamName(inputType.Field(i)),
|
Name: ParseStructField.GetParamName(inputType.Field(i)),
|
||||||
@ -430,7 +451,7 @@ func (g *Generate) AddComponentsSchema(rootSchemaName string, pkgPath string, in
|
|||||||
}
|
}
|
||||||
inputNameArr := strings.Split(inputType.Name(), ".")
|
inputNameArr := strings.Split(inputType.Name(), ".")
|
||||||
inputName := inputNameArr[len(inputNameArr)-1]
|
inputName := inputNameArr[len(inputNameArr)-1]
|
||||||
schemaName := strings.ReplaceAll(pkgPath+"."+inputName, "/", "-")
|
schemaName := strings.ReplaceAll(pkgPath+"."+inputName, "/", ".")
|
||||||
if schemaName == "-" {
|
if schemaName == "-" {
|
||||||
// 忽略的属性
|
// 忽略的属性
|
||||||
return schemaName
|
return schemaName
|
||||||
@ -591,7 +612,7 @@ func (g *Generate) getSchemaRef(schemaName string) string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
schemaName = strings.ReplaceAll(schemaName, "*", "") // 去除指针类型 *
|
schemaName = strings.ReplaceAll(schemaName, "*", "") // 去除指针类型 *
|
||||||
return "#/components/schemas/" + strings.ReplaceAll(schemaName, "/", "-")
|
return "#/components/schemas/" + strings.ReplaceAll(schemaName, "/", ".")
|
||||||
}
|
}
|
||||||
|
|
||||||
// realType2SwaggerType golang 真实数据类型转换为golang数据类型
|
// realType2SwaggerType golang 真实数据类型转换为golang数据类型
|
||||||
@ -704,5 +725,24 @@ func (g *Generate) parseBaseUriConfig(uriPrefix string, paramType reflect.Type)
|
|||||||
if res.Uri == "" {
|
if res.Uri == "" {
|
||||||
return nil, errors.New("baseCfg.Uri is empty")
|
return nil, errors.New("baseCfg.Uri is empty")
|
||||||
}
|
}
|
||||||
|
if nil == g.docData.Tags {
|
||||||
|
g.docData.Tags = make([]*define.TagItem, 0)
|
||||||
|
}
|
||||||
|
// 增加tag
|
||||||
|
for _, itemTag := range res.TagList {
|
||||||
|
exist := false
|
||||||
|
for _, t := range g.docData.Tags {
|
||||||
|
if itemTag == t.Name {
|
||||||
|
exist = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !exist {
|
||||||
|
g.docData.Tags = append(g.docData.Tags, &define.TagItem{
|
||||||
|
Name: itemTag,
|
||||||
|
Description: itemTag,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user