github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/pkg/api/tmpl/inline.tmpl (about) 1 // inline.tmpl based on https://github.com/deepmap/oapi-codegen/tree/master/pkg/codegen/templates 2 3 // Base64 encoded, gzipped, json marshaled Swagger object 4 var swaggerSpec = []string{ 5 {{range .}} 6 "{{.}}",{{end}} 7 } 8 9 // GetSwaggerSpecReader returns a reader to the Swagger specification corresponding to the generated code in this file. 10 func GetSwaggerSpecReader() (io.Reader, error) { 11 zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) 12 if err != nil { 13 return nil, fmt.Errorf("error base64 decoding spec: %s", err) 14 } 15 zr, err := gzip.NewReader(bytes.NewReader(zipped)) 16 if err != nil { 17 return nil, fmt.Errorf("error decompressing spec: %s", err) 18 } 19 return zr, err 20 } 21 22 // GetSwagger returns the Swagger specification corresponding to the generated code 23 // in this file. 24 func GetSwagger() (*openapi3.Swagger, error) { 25 zr, err := GetSwaggerSpecReader() 26 if err != nil { 27 return nil, err 28 } 29 var buf bytes.Buffer 30 _, err = buf.ReadFrom(zr) 31 if err != nil { 32 return nil, fmt.Errorf("error decompressing spec: %s", err) 33 } 34 swagger, err := openapi3.NewSwaggerLoader().LoadSwaggerFromData(buf.Bytes()) 35 if err != nil { 36 return nil, fmt.Errorf("error loading Swagger: %s", err) 37 } 38 return swagger, nil 39 }