代码拉取完成,页面将自动刷新
package swagger
import (
"gitee.com/kelvins-io/common/convert"
"gitee.com/kelvins-io/common/file"
"gitee.com/kelvins-io/common/json"
"io/ioutil"
"strings"
)
// swagger.json file struct
type SwaggerJson struct {
Swagger string `json:"swagger"`
Info SwaggerJsonInfo `json:"info"`
Schemes []string `json:"schemes"`
Consumes []string `json:"consumes"`
Produces []string `json:"produces"`
Paths map[string]interface{} `json:"paths"`
Definitions map[string]interface{} `json:"definitions"`
}
type SwaggerJsonInfo struct {
Title string `json:"title"`
Version string `json:"version"`
}
func NewSwaggerJson() *SwaggerJson {
var p = &SwaggerJson{}
p.Paths = make(map[string]interface{})
p.Definitions = make(map[string]interface{})
return p
}
// merge swagger.json file to one swagger.json obj
func MergeSwaggerJson(path string) (*SwaggerJson, error) {
var fileList []string
var err error
fileList, err = getSwaggerJsonList(path)
if err != nil {
return nil, err
}
var data []byte
var jsonStr string
var swaggerJson *SwaggerJson
swaggerJson = NewSwaggerJson()
for _, f := range fileList {
data, err = ioutil.ReadFile(f)
if err != nil {
continue
}
jsonStr = convert.Byte2Str(data)
data = nil
var tmpSwaggerJson *SwaggerJson
_ = json.Unmarshal(jsonStr, &tmpSwaggerJson)
swaggerJson.Swagger = tmpSwaggerJson.Swagger
swaggerJson.Schemes = tmpSwaggerJson.Schemes
swaggerJson.Consumes = tmpSwaggerJson.Consumes
swaggerJson.Info = tmpSwaggerJson.Info
swaggerJson.Produces = tmpSwaggerJson.Produces
swaggerJson.Paths = mergeMap(swaggerJson.Paths, tmpSwaggerJson.Paths)
swaggerJson.Definitions = mergeMap(swaggerJson.Definitions, tmpSwaggerJson.Definitions)
}
return swaggerJson, nil
}
func MergeSwaggerJsonBy(data map[string][]byte) *SwaggerJson {
swaggerJson := NewSwaggerJson()
var tmpSwaggerJson *SwaggerJson
var jsonStr string
for _, bytes := range data {
jsonStr = convert.Byte2Str(bytes)
_ = json.Unmarshal(jsonStr, &tmpSwaggerJson)
swaggerJson.Paths = mergeMap(swaggerJson.Paths, tmpSwaggerJson.Paths)
swaggerJson.Definitions = mergeMap(swaggerJson.Definitions, tmpSwaggerJson.Definitions)
}
return swaggerJson
}
func getSwaggerJsonList(path string) ([]string, error) {
var fileList []string
var err error
fileList, err = file.GetFileList(path)
if err != nil {
return nil, err
}
var swaggerJsonList []string
for _, f := range fileList {
if strings.HasSuffix(f, "swagger.json") {
swaggerJsonList = append(swaggerJsonList, f)
}
}
return swaggerJsonList, nil
}
func mergeMap(dstMap map[string]interface{}, srcMap map[string]interface{}) map[string]interface{} {
for k, v := range srcMap {
dstMap[k] = v
}
return dstMap
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。