Reputation: 1811
For some REST APIs written in PHP, I was asked to create Swagger documentation, and since I was not aware of any easy way of annotating those existing APIs and create such a documentation, I used this editor to generate some for now.
I saved the JSON and YAML files created using that editor, and now I need to create the "interactive" Swagger documentation from there.
Can someone please let me know how I can convert the Swagger JSON specification file to an actual Swagger documentation?
I am on the Windows platform and do not know anything about Ant/Maven.
Upvotes: 128
Views: 226946
Reputation: 1763
EDIT: 2024-04-22
You can now use docker compose like this with openapi.json
next to your compose file and containing the spec:
version: '3'
services:
swagger-ui:
image: swaggerapi/swagger-ui
container_name: swagger-ui
ports:
- "8080:8080"
environment:
SWAGGER_JSON: /openapi/openapi.json
volumes:
- ./openapi.json:/openapi/openapi.json
Previous/Manual answer
You can also download swagger ui from: https://github.com/swagger-api/swagger-ui, take the dist folder, modify index.html: change the constructor
const ui = SwaggerUIBundle({
url: ...,
into
const ui = SwaggerUIBundle({
spec: YOUR_JSON,
now the dist folder contains all what you need and can be distributed as is
Upvotes: 10
Reputation: 354
I'm very happy with rapidoc : https://rapidocweb.com/
Why I liked it :
Upvotes: 1
Reputation: 21766
Update May 17, 2023
Seems redoc-cli has been deprecated. so use https://www.npmjs.com/package/@redocly/cli instead. [Credit : @Dave]
Try to use redoc-cli.
I was using bootprint-openapi by which I was generating a bunch of files (bundle.js
, bundle.js.map
, index.html
, main.css
and main.css.map
) and then you can convert it into a single .html
file using html-inline to generate a simple index.html
file.
Then I found redoc-cli very easy to to use and output is really-2 awesome, a single and beautiful index.html file.
Installation:
npm install -g redoc-cli
Usage:
redoc-cli bundle -o index.html swagger.json
Upvotes: 124
Reputation: 1341
Redocly's CLI interface has a tool to build HTML docs from OpenAPI spec files.
sudo npm i -g @redocly/cli
redocly build-docs my-swagger.yml -o docs.html
Upvotes: 6
Reputation: 441
For Swagger API 3.0, generating Html2 client code from online Swagger Editor works great for me!
Upvotes: 8
Reputation: 899
There's a small Java program which generates docs (adoc or md) from a yaml file.
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage(MarkupLanguage.ASCIIDOC)
.withSwaggerMarkupLanguage(MarkupLanguage.ASCIIDOC)
.withOutputLanguage(Language.DE)
.build();
Swagger2MarkupConverter builder = Swagger2MarkupConverter.from(yamlFileAsString).withConfig(config).build();
return builder.toFileWithoutExtension(outFile);
Unfortunately it only supports OpenAPI 2.0 but not OpenAPI 3.0.
Upvotes: 1
Reputation: 736
I spent a lot of time and tried a lot of different solutions - in the end I did it this way :
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/swagger-ui.css">
<script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script>
<script>
function render() {
var ui = SwaggerUIBundle({
url: `path/to/my/swagger.yaml`,
dom_id: '#swagger-ui',
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIBundle.SwaggerUIStandalonePreset
]
});
}
</script>
</head>
<body onload="render()">
<div id="swagger-ui"></div>
</body>
</html>
You just need to have path/to/my/swagger.yaml served from the same location.
(or use CORS headers)
Upvotes: 29
Reputation: 5008
See the swagger-api/swagger-codegen project on GitHub ; the project README shows how to use it to generate static HTML. See Generating static html api documentation.
If you want to view the swagger.json you can install the Swagger UI and run it. You just deploy it on a web server (the dist folder after you clone the repo from GitHub) and view the Swagger UI in your browser. It's a JavaScript app.
Upvotes: 17
Reputation: 3372
Everything was too difficult or badly documented so I solved this with a simple script swagger-yaml-to-html.py, which works like this
python swagger-yaml-to-html.py < /path/to/api.yaml > doc.html
This is for YAML but modifying it to work with JSON is also trivial.
Upvotes: 38
Reputation: 4945
Check out pretty-swag
It has
I was looking at Swagger Editor and thought it could export the preview pane but turned out it cannot. So I wrote my own version of it.
Full Disclosure: I am the author of the tool.
Upvotes: 19
Reputation: 666
I was not satisfied with swagger-codegen
when I was looking for a tool to do this, so I wrote my own. Have a look at bootprint-swagger
The main goal compared to swagger-codegen
is to provide an easy setup (though you'll need nodejs).
And it should be easy to adapt styling and templates to your own needs, which is a core functionality of the bootprint-project
Upvotes: 48
Reputation: 4117
Give a look at this link : http://zircote.com/swagger-php/installation.html
If you need another help please feel free to ask.
Upvotes: 2