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