This project was developed as part of a larger initiative at a company I previously worked with. While it served its purpose during its active phase, it is no longer used or maintained.
Unfortunately, I no longer have the time to maintain or update this repository. However, to preserve the work and make it available to the community, this repository is being archived.
If you find it useful or wish to build upon it, feel free to fork the project and continue development on your own.
Thank you for your interest and support!
🛸 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.