diff --git a/templates/swagger/ui.tmpl b/templates/swagger/ui.tmpl index d3ef2beb23..802ce70eac 100644 --- a/templates/swagger/ui.tmpl +++ b/templates/swagger/ui.tmpl @@ -71,22 +71,33 @@ <script> window.onload = function() { - // Build a system - const ui = SwaggerUIBundle({ - url: "{{AppUrl}}swagger.{{.APIJSONVersion}}.json", - dom_id: '#swagger-ui', - deepLinking: true, - presets: [ - SwaggerUIBundle.presets.apis, - SwaggerUIStandalonePreset - ], - plugins: [ - SwaggerUIBundle.plugins.DownloadUrl - ], - layout: "StandaloneLayout" - }) + // Fetch the Swagger JSON specs + var url = "{{AppUrl}}swagger.{{.APIJSONVersion}}.json" + fetch(url) + .then(function(response) { + response.json() + .then(function(spec) { + // Make the page's protocol be at the top of the schemes list + var protocol = window.location.protocol.slice(0, -1) + spec.schemes.sort(function(x,y){ return x == protocol ? -1 : y == protocol ? 1 : 0 }) + // Build the Swagger UI + const ui = SwaggerUIBundle({ + spec: spec, + dom_id: '#swagger-ui', + deepLinking: true, + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + }) - window.ui = ui + window.ui = ui + }) + }) } </script> </body>