Swagger UI Installation
Distribution channels
NPM Registry
We publish three modules to npm: swagger-ui
, swagger-ui-dist
and swagger-ui-react
.
swagger-ui
is meant for consumption by JavaScript web projects that include module bundlers,
such as Webpack, Browserify, and Rollup. Its main file exports Swagger UI’s main function,
and the module also includes a namespaced stylesheet at swagger-ui/dist/swagger-ui.css
. Here’s an example:
See the Webpack Getting Started sample for details.
In contrast, swagger-ui-dist
is meant for server-side projects that need assets to serve to clients. The module, when imported, includes an absolutePath
helper function that returns the absolute filesystem path to where the swagger-ui-dist
module is installed.
Note: we suggest using swagger-ui
when your tooling makes it possible, as swagger-ui-dist
will result in more code going across the wire.
The module’s contents mirror the dist
folder you see in the Git repository. The most useful file is swagger-ui-bundle.js
, which is a build of Swagger UI that includes all the code it needs to run in one file. The folder also has an index.html
asset, to make it easy to serve Swagger UI like so:
The module also exports SwaggerUIBundle
and SwaggerUIStandalonePreset
, so
if you’re in a JavaScript project that can’t handle a traditional npm module,
you could do something like this:
SwaggerUIBundle
is equivalent to SwaggerUI
.
Docker
You can pull a pre-built docker image of the swagger-ui directly from Docker Hub:
Will start nginx with Swagger UI on port 80.
Or you can provide your own swagger.json on your host
You can also provide a URL to a swagger.json on an external host:
The base URL of the web application can be changed by specifying the BASE_URL
environment variable:
This will serve Swagger UI at /swagger
instead of /
.
You can specify a different port via PORT
variable for accessing the application, default is 8080
.
You can specify an IPv6 port via PORT_IPV6
variable. By default, IPv6 port is not set.
You can allow/disallow embedding via EMBEDDING
variable. By default, embedding is disabled.
For more information on controlling Swagger UI through the Docker image, see the Docker section of the Configuration documentation.
unpkg
You can embed Swagger UI’s code directly in your HTML by using unpkg’s interface:
Using StandalonePreset
will render TopBar
and ValidatorBadge
as well.
See unpkg’s main page for more information on how to use unpkg.
Static files without HTTP or HTML
Once swagger-ui has successfully generated the /dist
directory, you can copy this to your own file system and host from there.
Plain old HTML/CSS/JS (Standalone)
The folder /dist
includes all the HTML, CSS and JS files needed to run SwaggerUI on a static website or CMS, without requiring NPM.
- Download the latest release.
- Copy the contents of the
/dist
folder to your server. - Open
swagger-initializer.js
in your text editor and replace “https://petstore.swagger.io/v2/swagger.json” with the URL for your OpenAPI 3.0 spec.