upgrade: update wrapper

This commit is contained in:
2025-10-13 17:56:20 +08:00
parent 8126fbec86
commit 7ba9993e06
3 changed files with 23 additions and 20 deletions

View File

@ -16,7 +16,7 @@ import (
apiDocDefine "git.zhangdeman.cn/zhangdeman/api-doc/define"
"git.zhangdeman.cn/zhangdeman/consts"
"git.zhangdeman.cn/zhangdeman/wrapper"
"git.zhangdeman.cn/zhangdeman/wrapper/op_any"
)
// HandleOpenapiDocRes ...
@ -200,7 +200,7 @@ func (hod *handleOpenapiDoc) expendObjectOrArrayRequest(importUriConfig *apiDocD
if len(parentPath) > 0 {
currentPropertyName = parentPath + "." + currentPropertyName
}
defaultValue := wrapper.AnyDataType(currentProperty.Default).ToString().Value()
defaultValue := op_any.AnyDataType(currentProperty.Default).ToString()
// 基础数据类型
if len(currentProperty.Properties) == 0 && currentProperty.Type != consts.SwaggerDataTypeObject && currentProperty.Type != consts.SwaggerDataTypeArray && len(currentProperty.Ref) == 0 {
importUriConfig.ParamList = append(importUriConfig.ParamList, &apiDocDefine.ApiParamItem{
@ -432,7 +432,7 @@ func (hod *handleOpenapiDoc) expendObjectOrArrayPath(importUriConfig *apiDocDefi
if len(parentPath) > 0 {
currentPropertyName = parentPath + "." + currentPropertyName
}
defaultValue := wrapper.AnyDataType(currentProperty.Default).ToString().Value()
defaultValue := op_any.AnyDataType(currentProperty.Default).ToString()
// 基础数据类型
if len(currentProperty.Properties) == 0 && currentProperty.Type != consts.SwaggerDataTypeObject && currentProperty.Type != consts.SwaggerDataTypeArray && len(currentProperty.Ref) == 0 {
importUriConfig.ResultList = append(importUriConfig.ResultList, &apiDocDefine.ApiResultItem{

View File

@ -15,7 +15,9 @@ import (
"git.zhangdeman.cn/zhangdeman/api-doc/enums"
"git.zhangdeman.cn/zhangdeman/api-doc/util"
"git.zhangdeman.cn/zhangdeman/consts"
"git.zhangdeman.cn/zhangdeman/wrapper"
"git.zhangdeman.cn/zhangdeman/wrapper/op_array"
"git.zhangdeman.cn/zhangdeman/wrapper/op_string"
"git.zhangdeman.cn/zhangdeman/wrapper/op_ternary"
)
// Generate 生成文档
@ -49,20 +51,20 @@ func formatDocConfig(docConfig *define.SwaggerInput) {
consts.SchemeHTTP.String(),
}
}
docConfig.Host = wrapper.String(docConfig.Host).ReplaceChar(map[string]string{
docConfig.Host = op_string.ReplaceChar(docConfig.Host, map[string]string{
consts.SchemeHTTP.String() + "://": "",
consts.SchemeHTTPS.String() + "://": "",
}).Value()
})
for _, itemPath := range docConfig.PathConfigList {
// 默认请求类型 application/json
itemPath.ContentType = strings.TrimSpace(itemPath.ContentType)
itemPath.ContentType = wrapper.TernaryOperator.String(len(itemPath.ContentType) == 0, consts.MimeTypeJson, wrapper.String(itemPath.ContentType)).Value()
itemPath.ContentType = op_ternary.BaseType[string](len(itemPath.ContentType) == 0, consts.MimeTypeJson, itemPath.ContentType)
// 默认post请求
itemPath.Method = strings.TrimSpace(itemPath.Method)
itemPath.Method = wrapper.TernaryOperator.String(len(itemPath.ContentType) == 0, wrapper.String(strings.ToLower(http.MethodPost)), wrapper.String(strings.ToLower(itemPath.Method))).Value()
itemPath.Method = op_ternary.BaseType[string](len(itemPath.ContentType) == 0, strings.ToLower(http.MethodPost), strings.ToLower(itemPath.Method))
// 默认summary
itemPath.Summary = strings.TrimSpace(itemPath.Summary)
itemPath.Summary = wrapper.TernaryOperator.String(len(itemPath.Summary) == 0, wrapper.String("接口 : "+itemPath.Uri), wrapper.String(itemPath.Summary)).Value()
itemPath.Summary = op_ternary.BaseType[string](len(itemPath.Summary) == 0, "接口 : "+itemPath.Uri, itemPath.Summary)
// 默认标签
if len(itemPath.TagList) == 0 {
itemPath.TagList = []string{"未分组"}
@ -70,25 +72,25 @@ func formatDocConfig(docConfig *define.SwaggerInput) {
for _, itemParam := range itemPath.ParameterList {
// 填充默认参数位置
itemParam.In = strings.TrimSpace(itemParam.In)
itemParam.In = wrapper.TernaryOperator.String(len(itemParam.In) == 0, wrapper.String(util.GetParameterDefaultLocation(itemPath.Method)), wrapper.String(itemParam.In)).Value()
itemParam.In = op_ternary.BaseType[string](len(itemParam.In) == 0, util.GetParameterDefaultLocation(itemPath.Method), itemParam.In)
// 参数类型没填, 按照字符串处理
itemParam.Type = strings.TrimSpace(itemParam.Type)
itemParam.Type = wrapper.TernaryOperator.String(len(itemParam.Type) == 0, wrapper.String(itemParam.Type), wrapper.String(itemParam.Type)).Value()
itemParam.Type = op_ternary.BaseType[string](len(itemParam.Type) == 0, itemParam.Type, itemParam.Type)
// 参数描述
itemParam.Description = strings.TrimSpace(itemParam.Description)
itemParam.Description = wrapper.TernaryOperator.String(len(itemParam.Description) == 0, wrapper.String(itemParam.Type+" : "+itemParam.Name), wrapper.String(itemParam.Description)).Value()
itemParam.Description = op_ternary.BaseType[string](len(itemParam.Description) == 0, itemParam.Type+" : "+itemParam.Name, itemParam.Description)
}
for _, itemResponseConfig := range itemPath.ResponseList {
for _, itemResponse := range itemResponseConfig.List {
// 默认返回数据类型
itemResponse.Type = strings.TrimSpace(itemResponse.Type)
itemResponse.Type = wrapper.TernaryOperator.String(len(itemResponse.Type) == 0, wrapper.String(consts.DataTypeString), wrapper.String(itemResponse.Type)).Value()
itemResponse.Type = op_ternary.BaseType[string](len(itemResponse.Type) == 0, consts.DataTypeString.String(), itemResponse.Type)
// 填充默认描述
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()
itemResponse.Description = op_ternary.BaseType[string](len(itemResponse.Description) == 0, itemResponse.Type+" : "+itemResponse.Field, itemResponse.Description)
}
}
}
@ -147,8 +149,8 @@ func generatePathParameterConfig(swaggerInfo *define.Swagger, pathConfig *define
if _, exist := hasDealTable[realParamName]; !exist {
hasDealTable[realParamName] = true
generateParam := &define.SwaggerPathConfigParameter{
Type: wrapper.TernaryOperator.String(realParamName == "jsonBody", "", wrapper.String(itemParamInput.Type)).Value(),
Description: wrapper.TernaryOperator.String(realParamName == "jsonBody", "参数结构", wrapper.String(itemParamInput.Description)).Value(),
Type: op_ternary.BaseType[string](realParamName == "jsonBody", "", itemParamInput.Type),
Description: op_ternary.BaseType[string](realParamName == "jsonBody", "参数结构", itemParamInput.Description),
Name: realParamName,
In: itemParamInput.In,
Required: itemParamInput.Required,
@ -257,7 +259,7 @@ func generateParameterDefinitions(swaggerInfo *define.Swagger, uri string, paren
storageSubPath += ".item"
}
initAnyDefinition(swaggerInfo, storageSubPath)
swaggerInfo.Definitions[storageSubPath].Type = wrapper.TernaryOperator.String(strings.HasSuffix(parentPath, "[]"), "array", consts.SwaggerDataTypeObject).Value()
swaggerInfo.Definitions[storageSubPath].Type = op_ternary.BaseType[string](strings.HasSuffix(parentPath, "[]"), "array", consts.SwaggerDataTypeObject)
// 设置字段必传
addRequiredField(swaggerInfo, storageSubPath, subPathArr[1], paramConfig.Required)
swaggerInfo.Definitions[storageSubPath].Properties[subPathArr[1]] = &define.SwaggerDefinitionProperty{
@ -285,7 +287,7 @@ func generateParameterDefinitions(swaggerInfo *define.Swagger, uri string, paren
}
itemSwaggerDefinition := &define.SwaggerDefinitionProperty{
Description: "对象描述",
Type: wrapper.TernaryOperator.String(subPathArr[1] == "[]", "array", consts.SwaggerDataTypeObject).Value(),
Type: op_ternary.BaseType[string](subPathArr[1] == "[]", "array", consts.SwaggerDataTypeObject),
Items: nil,
AllOf: nil,
}
@ -383,7 +385,7 @@ func setGlobalMapDefinition(swaggerInfo *define.Swagger, dataType string) {
//
// Date : 15:46 2024/4/25
func isGlobalMapType(dataType string) bool {
return wrapper.ArrayType([]string{
return op_array.Has(*op_array.ArrayType[string]([]string{
consts.DataTypeMapAnyAny.String(),
consts.DataTypeMapStrUint.String(),
consts.DataTypeMapStrInt.String(),
@ -391,7 +393,7 @@ func isGlobalMapType(dataType string) bool {
consts.DataTypeMapStrFloat.String(),
consts.DataTypeMapStrBool.String(),
consts.DataTypeMapStrAny.String(),
}).Has(dataType) >= 0
}), dataType) >= 0
}
// initAnyDefinition 初始化一个definition

View File

@ -14,6 +14,7 @@ import (
"testing"
"git.zhangdeman.cn/zhangdeman/api-doc/define"
"git.zhangdeman.cn/zhangdeman/consts"
)
func TestGenerate(t *testing.T) {