// 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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", "AAD//+ITiwMflAAA", } // 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 }