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