This commit is contained in:
白茶清欢 2024-12-23 17:56:01 +08:00
parent 15beb6bae0
commit fb9e22ac66

View File

@ -43,11 +43,13 @@ func Generate(docConfig *define.SwaggerInput) (*define.Swagger, error) {
// Date : 10:54 2024/4/22
func formatDocConfig(docConfig *define.SwaggerInput) {
if len(docConfig.Schemes) == 0 {
docConfig.Schemes = []string{consts.SchemeHTTP}
docConfig.Schemes = []string{
consts.SchemeHTTP.String(),
}
}
docConfig.Host = wrapper.String(docConfig.Host).ReplaceChar(map[string]string{
consts.SchemeHTTP + "://": "",
consts.SchemeHTTPS + "://": "",
consts.SchemeHTTP.String() + "://": "",
consts.SchemeHTTPS.String() + "://": "",
}).Value()
for _, itemPath := range docConfig.PathConfigList {
// 默认请求类型 application/json
@ -79,7 +81,7 @@ func formatDocConfig(docConfig *define.SwaggerInput) {
for _, itemResponse := range itemResponseConfig.List {
// 默认返回数据类型
itemResponse.Type = strings.TrimSpace(itemResponse.Type)
itemResponse.Type = wrapper.TernaryOperator.String(len(itemResponse.Type) == 0, consts.DataTypeString, wrapper.String(itemResponse.Type)).Value()
itemResponse.Type = wrapper.TernaryOperator.String(len(itemResponse.Type) == 0, wrapper.String(consts.DataTypeString), wrapper.String(itemResponse.Type)).Value()
// 填充默认描述
itemResponse.Description = strings.TrimSpace(itemResponse.Description)
itemResponse.Description = wrapper.TernaryOperator.String(len(itemResponse.Description) == 0, wrapper.String(itemResponse.Type+" : "+itemResponse.Field), wrapper.String(itemResponse.Description)).Value()
@ -133,7 +135,7 @@ func generatePathParameterConfig(swaggerInfo *define.Swagger, pathConfig *define
namePath := strings.Split(itemParamInput.Name, ".")
realParamName := namePath[0]
parentPath := ""
if strings.ToUpper(itemParamInput.In) == consts.RequestDataLocationBody && !strings.Contains(realParamName, ".") {
if strings.ToUpper(itemParamInput.In) == consts.RequestDataLocationBody.String() && !strings.Contains(realParamName, ".") {
realParamName = "jsonBody"
parentPath = strings.ReplaceAll(pathConfig.Uri, ".", "-") + ".jsonBody"
}
@ -177,7 +179,7 @@ func generatePathResponseConfig(swaggerInfo *define.Swagger, pathConfig *define.
Type: itemResponseInput.Type,
Description: itemResponseInput.Description,
Name: itemResponseInput.Field,
In: consts.RequestDataLocationBody,
In: consts.RequestDataLocationBody.String(),
Required: false,
EnumList: nil,
})
@ -186,8 +188,8 @@ func generatePathResponseConfig(swaggerInfo *define.Swagger, pathConfig *define.
hasDealResponseTable[namePath[0]] = true
swaggerInfo.Paths[pathConfig.Uri][pathConfig.Method].Responses[itemResponseConfig.Code] = &define.SwaggerPathConfigResponse{
Description: "返回数据",
Schema: map[string]string{
"$ref": getRefValue(outputDefine),
Schema: &define.SwaggerPathConfigResponseSchema{
Ref: getRefValue(outputDefine),
},
}
}
@ -298,7 +300,7 @@ func generateParameterDefinitions(swaggerInfo *define.Swagger, uri string, paren
//
// Date : 16:50 2024/4/25
func handleOneLevelSubPath(swaggerInfo *define.Swagger, uri string, parentPath string, subPath string, paramConfig *define.SwaggerParameterInput) {
if paramConfig.In != strings.ToLower(consts.RequestDataLocationBody) && !isGenerateOutput(parentPath) {
if paramConfig.In != strings.ToLower(consts.RequestDataLocationBody.String()) && !isGenerateOutput(parentPath) {
// 长度为1, 还不在 body, 无需生成结构体
return
}
@ -368,13 +370,13 @@ func setGlobalMapDefinition(swaggerInfo *define.Swagger, dataType string) {
// Date : 15:46 2024/4/25
func isGlobalMapType(dataType string) bool {
return wrapper.ArrayType([]string{
consts.DataTypeMapAnyAny,
consts.DataTypeMapStrUint,
consts.DataTypeMapStrInt,
consts.DataTypeMapStrSlice,
consts.DataTypeMapStrFloat,
consts.DataTypeMapStrBool,
consts.DataTypeMapStrAny,
consts.DataTypeMapAnyAny.String(),
consts.DataTypeMapStrUint.String(),
consts.DataTypeMapStrInt.String(),
consts.DataTypeMapStrSlice.String(),
consts.DataTypeMapStrFloat.String(),
consts.DataTypeMapStrBool.String(),
consts.DataTypeMapStrAny.String(),
}).Has(dataType) >= 0
}
@ -395,7 +397,7 @@ func initAnyDefinition(swaggerInfo *define.Swagger, definitionName string) {
}
swaggerInfo.Definitions[definitionName] = &define.SwaggerDefinition{
Type: consts.SwaggerDataTypeObject,
Format: consts.DataTypeMapStrAny,
Format: consts.DataTypeMapStrAny.String(),
Required: make([]string, 0),
Properties: make(map[string]*define.SwaggerDefinitionProperty),
}