Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including openapicmd with all npm packages installed. Try it out:

var openapicmd = require("openapicmd")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

openapicmd v1.6.2

OpenAPI Command Line Tool

OpenAPI Command Line Tool

CI Dependencies npm version License Sponsored Buy me a coffee

openapicmd - The CLI for all things OpenAPI and Swagger

Install

npm install -g openapicmd
openapi help

Features

  • [x] Read and convert local and remote JSON/YAML OpenAPI definition files
  • [x] Use as CLI client to easily call API endpoints
  • [x] Run Swagger UI locally
  • [x] Bundle static Swagger UI sites
  • [x] Run Swagger Editor locally
  • [x] Convert Swagger 2.0 to OpenAPI 3.0.x
  • [x] Run Local Mock APIs

Commands

* [`openapi help`](#openapi-help) * [`openapi read`](#openapi-read) * [`openapi info`](#openapi-info) * [`openapi swagger-ui`](#openapi-swagger-ui) * [`openapi swagger-editor`](#openapi-swagger-editor) * [`openapi call`](#openapi-call) * [`openapi mock`](#openapi-mock) * [`openapi swagger2openapi`](#openapi-swagger2openapi) * [`openapi init`](#openapi-init) * [`openapi load`](#openapi-load) * [`openapi unload`](#openapi-unload)

openapi help

display help for openapi

USAGE
  $ openapi help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

openapi read

Read and manipulate definition files

USAGE
  $ openapi read [DEFINITION]

ARGUMENTS
  DEFINITION  input definition file

OPTIONS
  -B, --bundle                        resolve remote $ref pointers
  -D, --dereference                   resolve $ref pointers
  -H, --header=header                 add request headers when calling remote urls
  -R, --root=/                        override API root path
  -S, --server=http://localhost:9000  override servers definition
  -V, --validate                      validate against openapi schema
  -f, --format=(json|yaml|yml)        [default: yaml] output format
  -h, --help                          show CLI help
  --json                              format as json (short for -f json)
  --yaml                              format as yaml (short for -f yaml)

EXAMPLES
  $ openapi read https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml
  $ openapi read ./openapi.yml -f json > openapi.json

openapi info

Display API information

USAGE
  $ openapi info [DEFINITION]

ARGUMENTS
  DEFINITION  input definition file

OPTIONS
  -B, --bundle                        resolve remote $ref pointers
  -D, --dereference                   resolve $ref pointers
  -H, --header=header                 add request headers when calling remote urls
  -R, --root=/                        override API root path
  -S, --server=http://localhost:9000  override servers definition
  -V, --validate                      validate against openapi schema
  -h, --help                          show CLI help
  --operations                        list operations in document
  --schemas                           list schemas in document

EXAMPLES
  $ openapi info https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml
  $ openapi info ./openapi.yml

openapi swagger-ui

Start or bundle a Swagger UI instance

USAGE
  $ openapi swagger-ui [DEFINITION]

ARGUMENTS
  DEFINITION  input definition file

OPTIONS
  -B, --bundle=outDir                 bundle a static site to directory
  -H, --header=header                 add request headers when calling remote urls
  -R, --root=/                        override API root path
  -S, --server=http://localhost:9000  override servers definition
  -h, --help                          show CLI help
  -p, --port=9000                     [default: 9000] port
  --[no-]deeplinks                    [default: true] allow deep linking
  --expand=full|list|none             [default: list] default expansion setting for the operations and tags
  --[no-]filter                       [default: true] enable filtering by tag
  --[no-]logger                       [default: true] log requests
  --[no-]operationids                 [default: true] display operationIds
  --proxy                             set up a proxy for the api to avoid CORS issues
  --[no-]requestduration              [default: true] display request durations in "try it now"
  --[no-]withcredentials              [default: true] send cookies in "try it now"

EXAMPLES
  $ openapi swagger-ui
  $ openapi swagger-ui ./openapi.yml
  $ openapi swagger-ui ./openapi.yml --bundle outDir

openapi swagger-editor

Start a Swagger Editor instance

USAGE
  $ openapi swagger-editor [DEFINITION]

ARGUMENTS
  DEFINITION  input definition file

OPTIONS
  -H, --header=header  add request headers when calling remote urls
  -h, --help           show CLI help
  -p, --port=9000      [default: 9000] port
  --[no-]logger        [default: true] log requests

EXAMPLES
  $ openapi swagger-editor
  $ openapi swagger-editor ./openapi.yml

openapi call

Call API endpoints

USAGE
  $ openapi call [DEFINITION]

ARGUMENTS
  DEFINITION  input definition file

OPTIONS
  -B, --bundle                        resolve remote $ref pointers
  -D, --dereference                   resolve $ref pointers
  -H, --header=header                 add request headers when calling remote urls
  -R, --root=/                        override API root path
  -S, --server=http://localhost:9000  override servers definition
  -V, --validate                      validate against openapi schema
  -d, --data=data                     request body
  -h, --help                          show CLI help
  -i, --include                       include status code and response headers the output
  -o, --operation=operationId         operationId
  -p, --param=key=value               parameter

EXAMPLES
  $ openapi call -o getPets
  $ openapi call -o getPet -p id=1
  $ openapi call -o createPet -d '{ "name": "Garfield" }'

openapi mock

Start a local mock API server

USAGE
  $ openapi mock [DEFINITION]

ARGUMENTS
  DEFINITION  input definition file

OPTIONS
  -H, --header=header                 add request headers when calling remote urls
  -R, --root=/                        override API root path
  -S, --server=http://localhost:9000  override servers definition
  -U, --swagger-ui=docs               Swagger UI endpoint
  -h, --help                          show CLI help
  -p, --port=9000                     [default: 9000] port
  --[no-]logger                       [default: true] log requests
  --[no-]validate                     [default: true] validate requests according to schema

EXAMPLES
  $ openapi mock ./openapi.yml
  $ openapi mock https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml

openapi swagger2openapi

Convert Swagger 2.0 definitions to OpenAPI 3.0.x

USAGE
  $ openapi swagger2openapi [DEFINITION]

ARGUMENTS
  DEFINITION  input definition file

OPTIONS
  -B, --bundle                        resolve remote $ref pointers
  -D, --dereference                   resolve $ref pointers
  -H, --header=header                 add request headers when calling remote urls
  -R, --root=/                        override API root path
  -S, --server=http://localhost:9000  override servers definition
  -V, --validate                      validate against openapi schema
  -f, --format=(json|yaml|yml)        [default: yaml] output format
  -h, --help                          show CLI help
  --json                              format as json (short for -f json)
  --yaml                              format as yaml (short for -f yaml)

EXAMPLE
  $ openapi swagger2openapi --yaml ./swagger.json > openapi.yml

openapi init

Initialise a definition file from scratch

USAGE
  $ openapi init

OPTIONS
  -S, --server=http://localhost:9000  override servers definition
  -T, --title=title                   [default: My API] The title for the API
  -d, --description=description       Description for the API
  -f, --format=(json|yaml|yml)        [default: yaml] output format
  -h, --help                          show CLI help
  -v, --version=version               [default: 0.0.1] Version of the API
  --json                              format as json (short for -f json)
  --license=mit|apache2               The license for the API
  --terms=terms                       A URL to the Terms of Service for the API.
  --yaml                              format as yaml (short for -f yaml)

EXAMPLE
  $ openapi init --title 'My API' > openapi.yml

openapi load

Set the default definition file for a workspace (writes to .openapiconfig)

USAGE
  $ openapi load DEFINITION

ARGUMENTS
  DEFINITION  input definition file

OPTIONS
  -V, --validate  validate against openapi schema
  -h, --help      show CLI help

EXAMPLES
  $ openapi load ./openapi.yml
  $ openapi load https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml

openapi unload

Unset the default definition file for a workspace (writes to .openapiconfig)

USAGE
  $ openapi unload

OPTIONS
  -h, --help  show CLI help

EXAMPLE
  $ openapi unload

Contributing

OpenAPI Backend is Free and Open Source Software. Issues and pull requests are more than welcome!

The Chilicorn

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free