https://github.com/vajahath/open-swagger-ui
A handy CLI / API to open swagger doc in swagger ui.
https://github.com/vajahath/open-swagger-ui
cli javascript npm swagger swagger-cli swagger-ui typescript
Last synced: 11 months ago
JSON representation
A handy CLI / API to open swagger doc in swagger ui.
- Host: GitHub
- URL: https://github.com/vajahath/open-swagger-ui
- Owner: vajahath
- License: mit
- Created: 2020-01-16T12:01:45.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-03T05:13:07.000Z (over 3 years ago)
- Last Synced: 2025-06-12T05:57:11.798Z (12 months ago)
- Topics: cli, javascript, npm, swagger, swagger-cli, swagger-ui, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/open-swagger-ui
- Size: 1.4 MB
- Stars: 16
- Watchers: 1
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# open-swagger-ui
An easy CLI to open `swagger.json` or `.yaml` files in [Swagger UI](https://swagger.io/tools/swagger-ui/).
```bash
$ open-swagger-ui ./swagger.json --open # done !
```
 [](https://www.typescriptlang.org/)
## Install
Requires Node `>=10`.
From npm,
```sh
npm i -g open-swagger-ui
```
From [Github Package Registry](https://github.com/vajahath/open-swagger-ui/packages). ([Guide](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-npm-for-use-with-github-packages)).
Type definitions are bundled with this package.
## CLI Usage
```bash
$ 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 --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
```bash
$ open-swagger-ui --help
Usage: open-swagger-ui [options]
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 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.
```ts
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`](https://nodejs.org/dist/latest-v13.x/docs/api/http.html#http_class_http_server) instance, `port` in which the file is open and the reference `swagFilePath`.
## Licence
MIT © [Vajahath Ahmed](https://twitter.com/vajahath7)