// Package swagger ... // // Description : swagger ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2024-04-22 16:02 package swagger import ( "encoding/json" "fmt" "git.zhangdeman.cn/gateway/api-doc/define" "git.zhangdeman.cn/zhangdeman/consts" "net/http" "testing" ) func TestGenerate(t *testing.T) { res, _ := Generate(&define.SwaggerInput{ Schemes: []string{}, Swagger: consts.SwaggerDocVersion2, Host: "http://www.baidu.com", BasePath: "/", Info: define.Info{ Description: "测试", Title: "测试", Contact: &define.Contact{ Name: "白茶", Url: "http://www.baidu.com", Email: "go@email.com", }, License: &define.License{ Name: consts.LicenseApache20, Url: consts.LicenseUrlTable[consts.LicenseApache20], }, Version: "", }, PathConfigList: []*define.SwaggerPathInput{ &define.SwaggerPathInput{ Uri: "/test", Method: http.MethodPost, ContentType: consts.MimeTypeJson, Summary: "测试接口", Description: "测试接口", TagList: []string{"测试接口生成"}, ParameterList: []*define.SwaggerParameterInput{ &define.SwaggerParameterInput{ Type: consts.DataTypeString.String(), Description: "姓名", Name: "name", In: "body", Required: true, EnumList: []interface{}{"zhang", "de", "man"}, }, &define.SwaggerParameterInput{ Type: consts.DataTypeString.String(), Description: "性别", Name: "person.sex", In: "body", Required: true, EnumList: []interface{}{"man", "woman", "other"}, }, &define.SwaggerParameterInput{ Type: consts.DataTypeString.String(), Description: "性别", Name: "person.job.list.[]", In: "body", Required: true, EnumList: nil, }, &define.SwaggerParameterInput{ Type: consts.DataTypeInt.String(), Description: "年份", Name: "person.job.year.[]", In: "body", Required: true, EnumList: nil, }, &define.SwaggerParameterInput{ Type: consts.DataTypeInt.String(), Description: "测试工作", Name: "person.job.test", In: "body", Required: true, EnumList: nil, }, &define.SwaggerParameterInput{ Type: consts.DataTypeInt.String(), Description: "年龄", Name: "age", In: "body", Required: true, EnumList: []interface{}{18, 19, 20}, }, &define.SwaggerParameterInput{ Type: consts.DataTypeInt.String(), Description: "年龄", Name: "test_list.[].age", In: "body", Required: true, EnumList: []interface{}{18, 19, 20}, }, &define.SwaggerParameterInput{ Type: consts.DataTypeString.String(), Description: "年龄", Name: "test_list.[].name", In: "body", Required: true, EnumList: nil, }, &define.SwaggerParameterInput{ Type: consts.DataTypeMapAnyAny.String(), Description: "测试global_map", Name: "obj", In: "body", Required: true, EnumList: nil, }, }, ResponseList: []*define.SwaggerResponseInput{ &define.SwaggerResponseInput{ Code: "200", Description: "成功", List: []*define.SwaggerResponseItemInput{ &define.SwaggerResponseItemInput{ Type: consts.DataTypeString.String(), Description: "姓名", Field: "nick_name", IsRequired: false, }, &define.SwaggerResponseItemInput{ Type: consts.DataTypeString.String(), Description: "昵称", Field: "person.nick_name", IsRequired: false, }, &define.SwaggerResponseItemInput{ Type: consts.DataTypeMapAnyAny.String(), Description: "测试返回生成map", Field: "obj", IsRequired: false, }, }, }, }, }, }, }) byteData, _ := json.MarshalIndent(res, "", "\t") fmt.Println(string(byteData)) }