// Package api_doc ... // // Description : api_doc ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2024-07-22 15:55 package api_doc import ( "git.zhangdeman.cn/gateway/api-doc/define" "git.zhangdeman.cn/zhangdeman/consts" "strings" ) // NewOpenapiDoc ... // // Author : go_developer@163.com<白茶清欢> // // Date : 15:56 2024/7/22 func NewOpenapiDoc() *Generate { return &Generate{ docData: &define.OpenapiDoc{ Openapi: consts.SwaggerDocVersion3, Info: &define.Info{ Description: "openapi接口文档", Title: "openapi接口文档", TermsOfService: "", Contact: &define.Contact{ Name: "", Url: "", Email: "", }, License: &define.License{ Name: "", Url: "", }, Version: "", }, Servers: make([]*define.ServerItem, 0), Components: &define.Components{Schemas: map[string]*define.Schema{}}, Tags: make([]*define.TagItem, 0), Paths: make(map[string]*define.PathConfig), }, } } // Generate 文档生成实例 // // Author : go_developer@163.com<白茶清欢> // // Date : 15:57 2024/7/22 type Generate struct { docData *define.OpenapiDoc } // AddTag 新增tag // // Author : go_developer@163.com<白茶清欢> // // Date : 14:23 2024/8/14 func (g *Generate) AddTag(tagName string, tagDesc string) { isHasTag := false for _, item := range g.docData.Tags { if item.Name == tagName { if len(tagDesc) > 0 { item.Description = tagDesc } isHasTag = true break } } if !isHasTag { g.docData.Tags = append(g.docData.Tags, &define.TagItem{ Name: tagName, Description: tagDesc, }) } } // AddServer 添加server // // Author : go_developer@163.com<白茶清欢> // // Date : 14:45 2024/8/14 func (g *Generate) AddServer(serverDomain string, serverDesc string, serverVariable map[string]*define.ServerItemVariable) { if nil == serverVariable { serverVariable = make(map[string]*define.ServerItemVariable) } serverDomain = strings.TrimRight(serverDomain, "/") isHasServer := false for _, item := range g.docData.Servers { if item.Url != serverDomain { continue } isHasServer = true if len(serverDesc) > 0 { item.Description = serverDesc } for varName, varValue := range serverVariable { item.Variables[varName] = varValue } break } if !isHasServer { g.docData.Servers = append(g.docData.Servers, &define.ServerItem{ Url: serverDomain, Description: serverDesc, Variables: serverVariable, }) } } func (g *Generate) AddApi() { }