增加获取真实definitions key方法, 优化参数配置构建
This commit is contained in:
parent
dd46f5ad80
commit
e044ff3e59
@ -85,3 +85,8 @@ func GetParamLocation(docParamLocation string) consts.RequestDataLocation {
|
|||||||
return consts.RequestDataLocationQuery
|
return consts.RequestDataLocationQuery
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetRealDefinitionsKey 统统schema下的 $ref 获取真实的 definitions key
|
||||||
|
func GetRealDefinitionsKey(ref string) string {
|
||||||
|
return strings.TrimPrefix(ref, "#/definitions/")
|
||||||
|
}
|
||||||
|
26
swagger.go
26
swagger.go
@ -95,6 +95,7 @@ func buildSwagger2ParamConfig(swaggerDoc *define.Swagger, paramConfigList []*def
|
|||||||
res := make([]*define.ParamConfig, 0)
|
res := make([]*define.ParamConfig, 0)
|
||||||
// 解析参数
|
// 解析参数
|
||||||
for _, paramConfig := range paramConfigList {
|
for _, paramConfig := range paramConfigList {
|
||||||
|
if paramConfig.Name != "body" {
|
||||||
paramConfigBuildConfig := &define.ParamConfig{
|
paramConfigBuildConfig := &define.ParamConfig{
|
||||||
Location: GetParamLocation(paramConfig.In).String(),
|
Location: GetParamLocation(paramConfig.In).String(),
|
||||||
Path: paramConfig.Name,
|
Path: paramConfig.Name,
|
||||||
@ -104,8 +105,29 @@ func buildSwagger2ParamConfig(swaggerDoc *define.Swagger, paramConfigList []*def
|
|||||||
Required: paramConfig.Required,
|
Required: paramConfig.Required,
|
||||||
}
|
}
|
||||||
res = append(res, paramConfigBuildConfig)
|
res = append(res, paramConfigBuildConfig)
|
||||||
if nil != paramConfig.Schema && len(paramConfig.Schema.Ref) > 0 {
|
}
|
||||||
// TODO : 可以继续展开
|
|
||||||
|
if nil == paramConfig.Schema || len(paramConfig.Schema.Ref) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// 可以继续展开
|
||||||
|
requiredTable := make(map[string]bool)
|
||||||
|
for _, paramName := range swaggerDoc.Definitions[GetRealDefinitionsKey(paramConfig.Schema.Ref)].Required {
|
||||||
|
requiredTable[paramName] = true
|
||||||
|
}
|
||||||
|
for paramName, paramMoreConfig := range swaggerDoc.Definitions[GetRealDefinitionsKey(paramConfig.Schema.Ref)].Properties {
|
||||||
|
if paramConfig.Name != "body" {
|
||||||
|
paramName = paramConfig.Name + "." + paramName
|
||||||
|
}
|
||||||
|
paramConfigBuildConfig := &define.ParamConfig{
|
||||||
|
Location: GetParamLocation(paramConfig.In).String(),
|
||||||
|
Path: paramName,
|
||||||
|
Type: GetParamType(paramMoreConfig.Type, "").String(),
|
||||||
|
Title: paramMoreConfig.Description,
|
||||||
|
Description: paramMoreConfig.Description,
|
||||||
|
Required: requiredTable[paramName],
|
||||||
|
}
|
||||||
|
res = append(res, paramConfigBuildConfig)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user