找到反射获取数组每一项数据类型的方法
This commit is contained in:
parent
fce39068ca
commit
81975350c1
@ -197,10 +197,10 @@ func (g *Generate) AddComponentsSchema(pkgPath string, inputType reflect.Type) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 数组
|
// 数组
|
||||||
if inputType.Kind() == reflect.Slice {
|
if inputType.Kind() == reflect.Slice || inputType.Kind() == reflect.Array {
|
||||||
|
inputType.Comparable()
|
||||||
}
|
}
|
||||||
// 结构体
|
// 结构体
|
||||||
if inputType.Kind() == reflect.Struct {
|
if inputType.Kind() == reflect.Struct {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
go.sum
2
go.sum
@ -1,5 +1,3 @@
|
|||||||
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250207132005-330777d80591 h1:P58+JwVhycrAFqE2Eq25N9y5lDokYBUz+oLxCKk44BE=
|
|
||||||
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250207132005-330777d80591/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k=
|
|
||||||
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250208020330-a50062af46a1 h1:vv4X72I6s6XcTi0ykj2v/cgMZyseFyE2LkS4WloICCs=
|
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250208020330-a50062af46a1 h1:vv4X72I6s6XcTi0ykj2v/cgMZyseFyE2LkS4WloICCs=
|
||||||
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250208020330-a50062af46a1/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k=
|
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250208020330-a50062af46a1/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k=
|
||||||
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20240122104027-4928421213c0 h1:gUDlQMuJ4xNfP2Abl1Msmpa3fASLWYkNlqDFF/6GN0Y=
|
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20240122104027-4928421213c0 h1:gUDlQMuJ4xNfP2Abl1Msmpa3fASLWYkNlqDFF/6GN0Y=
|
||||||
|
@ -14,6 +14,7 @@ import (
|
|||||||
"git.zhangdeman.cn/zhangdeman/serialize"
|
"git.zhangdeman.cn/zhangdeman/serialize"
|
||||||
"os"
|
"os"
|
||||||
"os/user"
|
"os/user"
|
||||||
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -23,6 +24,20 @@ import (
|
|||||||
//
|
//
|
||||||
// Date : 17:55 2024/7/19
|
// Date : 17:55 2024/7/19
|
||||||
func Test_parser_Openapi3(t *testing.T) {
|
func Test_parser_Openapi3(t *testing.T) {
|
||||||
|
type A struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
type B struct {
|
||||||
|
List []A `json:"list"`
|
||||||
|
}
|
||||||
|
var b *B
|
||||||
|
tt := reflect.TypeOf(b)
|
||||||
|
fmt.Println(tt)
|
||||||
|
var bArr []*B
|
||||||
|
v := reflect.MakeSlice(reflect.TypeOf(bArr), 1, 1)
|
||||||
|
fmt.Println(v)
|
||||||
|
index9 := v.Index(0)
|
||||||
|
fmt.Println(index9, index9.Type())
|
||||||
current, _ := user.Current()
|
current, _ := user.Current()
|
||||||
byteData, _ := os.ReadFile(current.HomeDir + "/Downloads/test-openapi-doc.json")
|
byteData, _ := os.ReadFile(current.HomeDir + "/Downloads/test-openapi-doc.json")
|
||||||
var data define.OpenapiDoc
|
var data define.OpenapiDoc
|
||||||
|
14
swagger.go
14
swagger.go
@ -54,7 +54,7 @@ func buildSwagger2GlobalSecurityParamList(swaggerDoc *define.Swagger) []*define.
|
|||||||
result = append(result, &define.ParamConfig{
|
result = append(result, &define.ParamConfig{
|
||||||
Location: GetParamLocation(paramConfig.In).String(),
|
Location: GetParamLocation(paramConfig.In).String(),
|
||||||
Path: paramName,
|
Path: paramName,
|
||||||
Type: GetDataType(paramConfig.Type, "").String(),
|
Type: GetDataType(paramConfig.Type, ""),
|
||||||
Title: paramName,
|
Title: paramName,
|
||||||
Description: paramConfig.Description,
|
Description: paramConfig.Description,
|
||||||
Required: false,
|
Required: false,
|
||||||
@ -72,8 +72,8 @@ func buildUriList(swaggerDoc *define.Swagger) ([]*define.UriBaseConfig, error) {
|
|||||||
uriResult := &define.UriBaseConfig{
|
uriResult := &define.UriBaseConfig{
|
||||||
Uri: swaggerDoc.BasePath + "/" + strings.TrimLeft(itemUri, "/"),
|
Uri: swaggerDoc.BasePath + "/" + strings.TrimLeft(itemUri, "/"),
|
||||||
Method: strings.ToUpper(requestMethod),
|
Method: strings.ToUpper(requestMethod),
|
||||||
ContentType: methodConfig.Consumes[0],
|
ContentType: methodConfig.Consumes,
|
||||||
OutputContentType: methodConfig.Produces[0],
|
OutputContentType: methodConfig.Produces,
|
||||||
TagList: methodConfig.Tags,
|
TagList: methodConfig.Tags,
|
||||||
Summary: methodConfig.Summary,
|
Summary: methodConfig.Summary,
|
||||||
Description: methodConfig.Description,
|
Description: methodConfig.Description,
|
||||||
@ -120,7 +120,7 @@ func buildSwagger2ParamConfig(swaggerDoc *define.Swagger, paramConfigList []*def
|
|||||||
paramConfigBuildConfig := &define.ParamConfig{
|
paramConfigBuildConfig := &define.ParamConfig{
|
||||||
Location: GetParamLocation(paramConfig.In).String(),
|
Location: GetParamLocation(paramConfig.In).String(),
|
||||||
Path: paramConfig.Name,
|
Path: paramConfig.Name,
|
||||||
Type: GetDataType(paramConfig.Type, paramConfig.Format).String(),
|
Type: GetDataType(paramConfig.Type, paramConfig.Format),
|
||||||
Title: paramConfig.Name,
|
Title: paramConfig.Name,
|
||||||
Description: paramConfig.Description,
|
Description: paramConfig.Description,
|
||||||
Required: paramConfig.Required,
|
Required: paramConfig.Required,
|
||||||
@ -143,7 +143,7 @@ func buildSwagger2ParamConfig(swaggerDoc *define.Swagger, paramConfigList []*def
|
|||||||
paramConfigBuildConfig := &define.ParamConfig{
|
paramConfigBuildConfig := &define.ParamConfig{
|
||||||
Location: GetParamLocation(paramConfig.In).String(),
|
Location: GetParamLocation(paramConfig.In).String(),
|
||||||
Path: paramName,
|
Path: paramName,
|
||||||
Type: GetDataType(paramMoreConfig.Type, "").String(),
|
Type: GetDataType(paramMoreConfig.Type, ""),
|
||||||
Title: paramName,
|
Title: paramName,
|
||||||
Description: paramMoreConfig.Description,
|
Description: paramMoreConfig.Description,
|
||||||
Required: requiredTable[paramName],
|
Required: requiredTable[paramName],
|
||||||
@ -204,7 +204,7 @@ func buildSwagger2ResultConfig(swaggerDoc *define.Swagger, resultConfig map[stri
|
|||||||
responseType = consts.DataTypeAny.String()
|
responseType = consts.DataTypeAny.String()
|
||||||
} else {
|
} else {
|
||||||
schemaType = responseTypeDefine.Schema.Type
|
schemaType = responseTypeDefine.Schema.Type
|
||||||
responseType = GetDataType(responseTypeDefine.Schema.Type, "").String()
|
responseType = GetDataType(responseTypeDefine.Schema.Type, "")
|
||||||
}
|
}
|
||||||
resCfg := &define.ResultConfig{
|
resCfg := &define.ResultConfig{
|
||||||
Location: consts.ResponseDataLocationBody.String(),
|
Location: consts.ResponseDataLocationBody.String(),
|
||||||
@ -223,7 +223,7 @@ func buildSwagger2ResultConfig(swaggerDoc *define.Swagger, resultConfig map[stri
|
|||||||
res = append(res, &define.ResultConfig{
|
res = append(res, &define.ResultConfig{
|
||||||
Location: consts.ResponseDataLocationBody.String(),
|
Location: consts.ResponseDataLocationBody.String(),
|
||||||
Path: responseKey,
|
Path: responseKey,
|
||||||
Type: GetDataType(responseKeyConfig.Type, "").String(),
|
Type: GetDataType(responseKeyConfig.Type, ""),
|
||||||
Title: responseKey,
|
Title: responseKey,
|
||||||
Description: responseKey,
|
Description: responseKey,
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user