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