🛸 Convert Postman Collection v2.1/v2.0 to OpenAPI v3.0.
Or in other words, transform this specification and also this to this one
Using npm
:
npm i postman-to-openapi
Using yarn
:
yarn add postman-to-openapi
To install as a cli
just
npm i postman-to-openapi -g
As a library
// Require Package
const postmanToOpenApi = require('postman-to-openapi')
// Postman Collection Path
const postmanCollection = './path/to/postman/collection.json'
// Output OpenAPI Path
const outputFile = './api/collection.yml'
// Async/await
try {
const result = await postmanToOpenApi(postmanCollection, outputFile, { defaultTag: 'General' })
// Without save the result in a file
const result2 = await postmanToOpenApi(postmanCollection, null, { defaultTag: 'General' })
console.log(`OpenAPI specs: ${result}`)
} catch (err) {
console.log(err)
}
// Promise callback style
postmanToOpenApi(postmanCollection, outputFile, { defaultTag: 'General' })
.then(result => {
console.log(`OpenAPI specs: ${result}`)
})
.catch(err => {
console.log(err)
})
As a cli
p2o ./path/to/PostmantoCollection.json -f ./path/to/result.yml -o ./path/to/options.json
All features, usage instructions and help can be found in the Documentation page
This project use for development:
Use the scripts in package.json
:
test:unit
: Run mocha unit test.test
: Execute test:lint
plus code coverage.lint
: Execute standard lint to review errors in code.lint:fix
: Execute standard lint and automatically fix errors.changelog
: Update changelog automatically.Steps to generate the gif demo:
npm install -g terminalizer
terminalizer record demo -d 'zsh'
Ctrl+D
terminalizer play demo
demo.yml
, change rows
to 15 (is the height) and anonymize terminal session.terminalizer render demo
Husky is configured to avoid push incorrect content to git.
Nodejs
Javascript
OpenAPI
Postman
Newman
Collection
Transform
Convert
See the LICENSE file.