- def _swagger_ui_page(self, all_endpoints=False):
- base = cherrypy.request.base
- if all_endpoints:
- spec_url = "{}/docs/api-all.json".format(base)
- else:
- spec_url = "{}/docs/api.json".format(base)
-
- page = """
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <meta name="referrer" content="no-referrer" />
- <link rel="stylesheet" type="text/css"
- href="/swagger-ui.css" >
- <style>
- html
- {{
- box-sizing: border-box;
- overflow: -moz-scrollbars-vertical;
- overflow-y: scroll;
- }}
- *,
- *:before,
- *:after
- {{
- box-sizing: inherit;
- }}
- body {{
- margin:0;
- background: #fafafa;
- }}
- </style>
- </head>
- <body>
- <div id="swagger-ui"></div>
- <script src="/swagger-ui-bundle.js">
- </script>
- <script>
- window.onload = function() {{
- const ui = SwaggerUIBundle({{
- url: '{}',
- dom_id: '#swagger-ui',
- presets: [
- SwaggerUIBundle.presets.apis
- ],
- layout: "BaseLayout"
- }})
- window.ui = ui
- }}
- </script>
- </body>
- </html>
- """.format(spec_url)
-
- return page
-
- @Endpoint(json_response=False, version=None)
- def __call__(self, all_endpoints=False):
- return self._swagger_ui_page(all_endpoints)
-