api-doc/swagger/run_test.go

153 lines
4.1 KiB
Go

// 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,
Description: "姓名",
Name: "name",
In: "body",
Required: true,
EnumList: []interface{}{"zhang", "de", "man"},
},
&define.SwaggerParameterInput{
Type: consts.DataTypeString,
Description: "性别",
Name: "person.sex",
In: "body",
Required: true,
EnumList: []interface{}{"man", "woman", "other"},
},
&define.SwaggerParameterInput{
Type: consts.DataTypeString,
Description: "性别",
Name: "person.job.list.[]",
In: "body",
Required: true,
EnumList: nil,
},
&define.SwaggerParameterInput{
Type: consts.DataTypeInt,
Description: "年份",
Name: "person.job.year.[]",
In: "body",
Required: true,
EnumList: nil,
},
&define.SwaggerParameterInput{
Type: consts.DataTypeInt,
Description: "测试工作",
Name: "person.job.test",
In: "body",
Required: true,
EnumList: nil,
},
&define.SwaggerParameterInput{
Type: consts.DataTypeInt,
Description: "年龄",
Name: "age",
In: "body",
Required: true,
EnumList: []interface{}{18, 19, 20},
},
&define.SwaggerParameterInput{
Type: consts.DataTypeInt,
Description: "年龄",
Name: "test_list.[].age",
In: "body",
Required: true,
EnumList: []interface{}{18, 19, 20},
},
&define.SwaggerParameterInput{
Type: consts.DataTypeString,
Description: "年龄",
Name: "test_list.[].name",
In: "body",
Required: true,
EnumList: nil,
},
&define.SwaggerParameterInput{
Type: consts.DataTypeMapAnyAny,
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,
Description: "姓名",
Field: "nick_name",
IsRequired: false,
},
&define.SwaggerResponseItemInput{
Type: consts.DataTypeString,
Description: "昵称",
Field: "person.nick_name",
IsRequired: false,
},
&define.SwaggerResponseItemInput{
Type: consts.DataTypeMapAnyAny,
Description: "测试返回生成map",
Field: "obj",
IsRequired: false,
},
},
},
},
},
},
})
byteData, _ := json.MarshalIndent(res, "", "\t")
fmt.Println(string(byteData))
}