open-swagger-ui

A easy cli to open swagger(.json or .yaml) files in Swagger UI

Usage no npm install needed!

<script type="module">
  import openSwaggerUi from 'https://cdn.skypack.dev/open-swagger-ui';
</script>

README

open-swagger-ui

An easy CLI to open swagger.json or .yaml files in Swagger UI.

$ open-swagger-ui ./swagger.json --open # done !

Install

Requires Node >=10.

From npm,

npm i -g open-swagger-ui

From Github Package Registry. (Guide).

Type definitions are bundled with this package.

CLI Usage

$ open-swagger-ui ./swagger.json
# => starts the server.

$ open-swagger-ui ./swagger.json --open # or -O for short
# => starts server, opens it in browser.

$ open-swagger-ui <absolute-path-to-swagger.json> --port 8899
# => you can put absolute/relative path for swagger.json
# => if the requested port is not available, a random port is chosen.

# Oh yes! You can put urls too..
$ open-swagger-ui https://petstore.swagger.io/v2/swagger.json

--help for help

$ open-swagger-ui --help
Usage: open-swagger-ui [options] <swagger-file>

An easy CLI tool to open swagger.json or .yaml files in Swagger UI.

Options:
  -V, --version      output the version number
  -O, --open         Open stuff in browser
  -P, --port <port>  Preferred port. If not available, a random port is selected
  -h, --help         output usage information

APIs

You can use this as a module too, just in case you want.

const { startServerWithSwaggerFile } = require('open-swagger-ui');
// or
import { startServerWithSwaggerFile } from 'open-swagger-ui';

startServerWithSwaggerFile('./path/to/swagger.json', port)
  .then(({ app, port, swagFilePath, server }) => {
    console.log(`app started on port ${port}`);
    // app is the express server underneath
    // you may freely add routes to it like
    // app.use(stuff);
  })
  .catch(err => console.error('something went wrong', err));

The startServerWithSwaggerFile function returns express app, the HTTP server instance, port in which the file is open and the reference swagFilePath.

(Project scaffolded with ts-np-generator)

Licence

MIT © Vajahath Ahmed