summaryrefslogtreecommitdiff
path: root/vendor/github.com/go-openapi/runtime/middleware/redoc.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-openapi/runtime/middleware/redoc.go')
-rw-r--r--vendor/github.com/go-openapi/runtime/middleware/redoc.go94
1 files changed, 0 insertions, 94 deletions
diff --git a/vendor/github.com/go-openapi/runtime/middleware/redoc.go b/vendor/github.com/go-openapi/runtime/middleware/redoc.go
deleted file mode 100644
index b96b01e7f..000000000
--- a/vendor/github.com/go-openapi/runtime/middleware/redoc.go
+++ /dev/null
@@ -1,94 +0,0 @@
-package middleware
-
-import (
- "bytes"
- "fmt"
- "html/template"
- "net/http"
- "path"
-)
-
-// RedocOpts configures the Redoc middlewares
-type RedocOpts struct {
- // BasePath for the UI, defaults to: /
- BasePath string
-
- // Path combines with BasePath to construct the path to the UI, defaults to: "docs".
- Path string
-
- // SpecURL is the URL of the spec document.
- //
- // Defaults to: /swagger.json
- SpecURL string
-
- // Title for the documentation site, default to: API documentation
- Title string
-
- // Template specifies a custom template to serve the UI
- Template string
-
- // RedocURL points to the js that generates the redoc site.
- //
- // Defaults to: https://cdn.jsdelivr.net/npm/redoc/bundles/redoc.standalone.js
- RedocURL string
-}
-
-// EnsureDefaults in case some options are missing
-func (r *RedocOpts) EnsureDefaults() {
- common := toCommonUIOptions(r)
- common.EnsureDefaults()
- fromCommonToAnyOptions(common, r)
-
- // redoc-specifics
- if r.RedocURL == "" {
- r.RedocURL = redocLatest
- }
- if r.Template == "" {
- r.Template = redocTemplate
- }
-}
-
-// Redoc creates a middleware to serve a documentation site for a swagger spec.
-//
-// This allows for altering the spec before starting the http listener.
-func Redoc(opts RedocOpts, next http.Handler) http.Handler {
- opts.EnsureDefaults()
-
- pth := path.Join(opts.BasePath, opts.Path)
- tmpl := template.Must(template.New("redoc").Parse(opts.Template))
- assets := bytes.NewBuffer(nil)
- if err := tmpl.Execute(assets, opts); err != nil {
- panic(fmt.Errorf("cannot execute template: %w", err))
- }
-
- return serveUI(pth, assets.Bytes(), next)
-}
-
-const (
- redocLatest = "https://cdn.jsdelivr.net/npm/redoc/bundles/redoc.standalone.js"
- redocTemplate = `<!DOCTYPE html>
-<html>
- <head>
- <title>{{ .Title }}</title>
- <!-- needed for adaptive design -->
- <meta charset="utf-8"/>
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
-
- <!--
- ReDoc doesn't change outer page styles
- -->
- <style>
- body {
- margin: 0;
- padding: 0;
- }
- </style>
- </head>
- <body>
- <redoc spec-url='{{ .SpecURL }}'></redoc>
- <script src="{{ .RedocURL }}"> </script>
- </body>
-</html>
-`
-)