150 lines
7.1 KiB
Go
150 lines
7.1 KiB
Go
// Package api provides primitives to interact with the openapi HTTP API.
|
|
//
|
|
// Code generated by github.com/deepmap/oapi-codegen version v1.9.0 DO NOT EDIT.
|
|
package api
|
|
|
|
import (
|
|
"bytes"
|
|
"compress/gzip"
|
|
"encoding/base64"
|
|
"fmt"
|
|
"net/url"
|
|
"path"
|
|
"strings"
|
|
|
|
"github.com/getkin/kin-openapi/openapi3"
|
|
)
|
|
|
|
// Base64 encoded, gzipped, json marshaled Swagger object
|
|
var swaggerSpec = []string{
|
|
|
|
"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",
|
|
}
|
|
|
|
// GetSwagger returns the content of the embedded swagger specification file
|
|
// or error if failed to decode
|
|
func decodeSpec() ([]byte, error) {
|
|
zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
|
|
if err != nil {
|
|
return nil, fmt.Errorf("error base64 decoding spec: %s", err)
|
|
}
|
|
zr, err := gzip.NewReader(bytes.NewReader(zipped))
|
|
if err != nil {
|
|
return nil, fmt.Errorf("error decompressing spec: %s", err)
|
|
}
|
|
var buf bytes.Buffer
|
|
_, err = buf.ReadFrom(zr)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("error decompressing spec: %s", err)
|
|
}
|
|
|
|
return buf.Bytes(), nil
|
|
}
|
|
|
|
var rawSpec = decodeSpecCached()
|
|
|
|
// a naive cached of a decoded swagger spec
|
|
func decodeSpecCached() func() ([]byte, error) {
|
|
data, err := decodeSpec()
|
|
return func() ([]byte, error) {
|
|
return data, err
|
|
}
|
|
}
|
|
|
|
// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
|
|
func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
|
|
var res = make(map[string]func() ([]byte, error))
|
|
if len(pathToFile) > 0 {
|
|
res[pathToFile] = rawSpec
|
|
}
|
|
|
|
return res
|
|
}
|
|
|
|
// GetSwagger returns the Swagger specification corresponding to the generated code
|
|
// in this file. The external references of Swagger specification are resolved.
|
|
// The logic of resolving external references is tightly connected to "import-mapping" feature.
|
|
// Externally referenced files must be embedded in the corresponding golang packages.
|
|
// Urls can be supported but this task was out of the scope.
|
|
func GetSwagger() (swagger *openapi3.T, err error) {
|
|
var resolvePath = PathToRawSpec("")
|
|
|
|
loader := openapi3.NewLoader()
|
|
loader.IsExternalRefsAllowed = true
|
|
loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
|
|
var pathToFile = url.String()
|
|
pathToFile = path.Clean(pathToFile)
|
|
getSpec, ok := resolvePath[pathToFile]
|
|
if !ok {
|
|
err1 := fmt.Errorf("path not found: %s", pathToFile)
|
|
return nil, err1
|
|
}
|
|
return getSpec()
|
|
}
|
|
var specData []byte
|
|
specData, err = rawSpec()
|
|
if err != nil {
|
|
return
|
|
}
|
|
swagger, err = loader.LoadFromData(specData)
|
|
if err != nil {
|
|
return
|
|
}
|
|
return
|
|
}
|