// 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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", "AP//3aXGoJmTAAA=", } // 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 }