// 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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", "q22XAAA=", } // 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 }