// Package api_doc ... // // Description : api_doc ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2024-12-24 10:34 package api_doc import ( "errors" "fmt" "git.zhangdeman.cn/gateway/api-doc/define" "git.zhangdeman.cn/zhangdeman/serialize" ) // ParseSwagger2 解析swagger2.0版本文档 // // Author : go_developer@163.com<白茶清欢> // // Date : 10:33 2024/12/24 func ParseSwagger2(docContent []byte) (*define.DocParseResult, error) { var ( err error swaggerDoc define.Swagger ) if err = serialize.JSON.UnmarshalWithNumber(docContent, &swaggerDoc); nil != err { return nil, errors.New("parse swagger json fail : " + err.Error()) } docResult := &define.DocParseResult{ Domain: swaggerDoc.Host, Title: swaggerDoc.Info.Title, Description: swaggerDoc.Info.Description, UriList: make([]*define.UriBaseConfig, 0), } if docResult.UriList, err = buildUriList(&swaggerDoc); nil != err { return nil, err } return docResult, nil } // 解析uri列表 func buildUriList(swaggerDoc *define.Swagger) ([]*define.UriBaseConfig, error) { uriList := make([]*define.UriBaseConfig, 0) for itemUri, itemUriMethodConfig := range swaggerDoc.Paths { GetUriPathParamList(itemUri) fmt.Println(itemUriMethodConfig) } return uriList, nil }