Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 13 days 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 (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-03T05:13:07.000Z (almost 2 years ago)
- Last Synced: 2025-01-08T15:54:03.514Z (23 days 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: 17
- Watchers: 2
- 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://github.com/vajahath/open-swagger-ui/workflows/Build/badge.svg) [![](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](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)