// 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 }