🛸 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:
- Node.js v12.x to v17.x
- Standard JS rules to maintain clean code.
- Use Conventional Commit for commit messages.
- Test with mocha.js.
Use the scripts in package.json
:
test:unit
: Run mocha unit test.test
: Executetest: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:
- Install terminalizer
npm install -g terminalizer
- Start a recording using
terminalizer record demo -d 'zsh'
- Stop recording with
Ctrl+D
- Check demo with
terminalizer play demo
- Adjust delays in
demo.yml
, changerows
to 15 (is the height) and anonymize terminal session. - Generate the gif with
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.