规划swagger文档逻辑

This commit is contained in:
2024-12-24 10:34:28 +08:00
parent fb9e22ac66
commit d069ead94e
6 changed files with 66 additions and 29 deletions

View File

@ -8,6 +8,8 @@
package api_doc
import (
"errors"
"git.zhangdeman.cn/gateway/api-doc/define"
"git.zhangdeman.cn/zhangdeman/serialize"
"github.com/tidwall/gjson"
"strings"
@ -18,7 +20,7 @@ import (
// Author : go_developer@163.com<白茶清欢>
//
// Date : 16:54 2024/12/23
func Parse(docUrl string) (any, error) {
func Parse(docUrl string) (*define.DocParseResult, error) {
var (
err error
docContent []byte
@ -28,17 +30,30 @@ func Parse(docUrl string) (any, error) {
return nil, err
}
swaggerVersion := gjson.GetBytes(docContent, "swagger").String()
if "" == swaggerVersion || strings.HasPrefix(swaggerVersion, "3.") {
if "" == swaggerVersion || !strings.HasPrefix(swaggerVersion, "2.") {
// 未指定swagger版本或swagger版本3.x
return ParseOpenapi3(docContent)
}
return ParseSwagger2(docContent)
}
func ParseOpenapi3(docContent []byte) (any, error) {
// 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())
}
return nil, nil
}
func ParseSwagger2(docContent []byte) (any, error) {
func ParseOpenapi3(docContent []byte) (*define.DocParseResult, error) {
return nil, nil
}