-
Star
(173)
You must be signed in to star a gist -
Fork
(40)
You must be signed in to fork a gist
-
-
Save oseiskar/dbd51a3727fc96dcf5ed189fca491fb3 to your computer and use it in GitHub Desktop.
| #!/usr/bin/python | |
| # | |
| # Copyright 2017 Otto Seiskari | |
| # Licensed under the Apache License, Version 2.0. | |
| # See http://www.apache.org/licenses/LICENSE-2.0 for the full text. | |
| # | |
| # This file is based on | |
| # https://github.com/swagger-api/swagger-ui/blob/4f1772f6544699bc748299bd65f7ae2112777abc/dist/index.html | |
| # (Copyright 2017 SmartBear Software, Licensed under Apache 2.0) | |
| # | |
| """ | |
| Usage: | |
| python swagger-yaml-to-html.py < /path/to/api.yaml > doc.html | |
| """ | |
| import yaml, json, sys | |
| TEMPLATE = """ | |
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>Swagger UI</title> | |
| <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+Web:400,600,700" rel="stylesheet"> | |
| <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.24.2/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="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.24.2/swagger-ui-bundle.js"> </script> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.24.2/swagger-ui-standalone-preset.js"> </script> | |
| <script> | |
| window.onload = function() { | |
| var spec = %s; | |
| // Build a system | |
| 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 | |
| } | |
| </script> | |
| </body> | |
| </html> | |
| """ | |
| spec = yaml.load(sys.stdin, Loader=yaml.FullLoader) | |
| sys.stdout.write(TEMPLATE % json.dumps(spec)) |
@juandavidg890121: You could try updating the Swagger version on these lines:
- https://gist.github.com/oseiskar/dbd51a3727fc96dcf5ed189fca491fb3#file-swagger-yaml-to-html-py-L25-L26
- https://gist.github.com/oseiskar/dbd51a3727fc96dcf5ed189fca491fb3#file-swagger-yaml-to-html-py-L51-L52
...and run the original Python script. I'm not sure when @yousan has las updated their Docker version. The older version of Swagger currently used here probably does not support showing the schema
@juandavidg890121: You could try updating the Swagger version on these lines:
- https://gist.github.com/oseiskar/dbd51a3727fc96dcf5ed189fca491fb3#file-swagger-yaml-to-html-py-L25-L26
- https://gist.github.com/oseiskar/dbd51a3727fc96dcf5ed189fca491fb3#file-swagger-yaml-to-html-py-L51-L52
...and run the original Python script. I'm not sure when @yousan has las updated their Docker version. The older version of Swagger currently used here probably does not support showing the schema
@oseiskar Thanks, it works perfectly
@juandavidg890121 @oseiskar
Hello.
I fixed from oseiskar's code. (Thank you @oseiskar)
https://github.com/yousan/swagger-yaml-to-html/blob/master/swagger-yaml-to-html.py
Docker Hub have built the new one.
https://hub.docker.com/r/yousan/swagger-yaml-to-html/builds
Please try the latest image if you can ;)
Thank you.
Many Thanks!
Thank you.
nice one and thanks @yousan
The elegant solution 💯
We just can simply use redoc-cli !!!
https://redoc.ly/docs/redoc/quickstart/cli/
I am unable to get the header examples in the HTML-generated file. However, i can see the example in the Swagger editor. Anyone facing this issue?
We just can simply use
redoc-cli!!! https://redoc.ly/docs/redoc/quickstart/cli/
Thank you.
I love you.
I generate the html file well using the command


docker run --rm -i yousan/swagger-yaml-to-html < jobs.yaml > jobs.htmlBut the script does not generate the Schema in the responses
If you use the online editor you get the schemas well
How can I obtain that?