7 releases (stable)

1.2.1 Jan 31, 2024
1.2.0 Nov 30, 2023
1.1.0 Sep 13, 2023
1.0.0 Aug 1, 2022
0.1.0 Aug 21, 2020

#202 in Data structures

Download history 153/week @ 2024-07-17 146/week @ 2024-07-24 139/week @ 2024-07-31 184/week @ 2024-08-07 134/week @ 2024-08-14 178/week @ 2024-08-21 152/week @ 2024-08-28 237/week @ 2024-09-04 221/week @ 2024-09-11 290/week @ 2024-09-18 323/week @ 2024-09-25 216/week @ 2024-10-02 203/week @ 2024-10-09 193/week @ 2024-10-16 167/week @ 2024-10-23 135/week @ 2024-10-30

729 downloads per month
Used in postman2openapi-cli

Apache-2.0

185KB
3K SLoC

postman2openapi

Convert Postman collections to OpenAPI definitions.

Build status

Try it on the Web: https://kevinswiber.github.io/postman2openapi/

CLI

Installation

Archives of precompiled binaries for postman2openapi are available for Windows, macOS and Linux.

Linux binaries are static executables. Windows binaries are available either as built with MinGW (GNU) or with Microsoft Visual C++ (MSVC). When possible, prefer MSVC over GNU, but you'll need to have the Microsoft VC++ 2015 redistributable installed.

For Rust developers, installation is also available via Cargo. Installing Rust and Cargo

To install the latest published version on crates.io, use:

cargo install postman2openapi-cli

To install from the latest on GitHub, use:

cargo install --git https://github.com/kevinswiber/postman2openapi postman2openapi-cli

Usage

USAGE:
    postman2openapi [OPTIONS] [input-file]

ARGS:
    <input-file>    The Postman collection to convert; data may also come from stdin

OPTIONS:
    -f, --output-format <format>    The output format [default: yaml] [possible values: yaml, json]
    -h, --help                      Print help information
    -V, --version                   Print version information

Examples

postman2openapi collection.json > openapi.yaml
cat collection.json | postman2openapi -f json

JavaScript library

Installation

npm install postman2openapi

Usage

const collection = require("./collection"); // any Postman collection JSON file
const { transpile } = require("postman2openapi");

// Returns a JavaScript object representation of the OpenAPI definition.
const openapi = transpile(collection);

console.log(JSON.stringify(openapi, null, 2));

JavaScript API

transpile(collection: object): object

  • collection - An object representing the Postman collection.
  • returns - an OpenAPI definition as a JavaScript object.

Build

Note: A Dev Container is included for convenience.

To take advantage of build recipes, install just.

just build

Builds the Rust library and the CLI packages.

just test

Runs all lint checks (cargo fmt --check, cargo clippy) and runs all tests, including tests for wasm32-unknown-unknown targets (Node.js, Chrome, Firefox).

just start-web

Builds the WebAssembly project and starts a local version of the postman2openapi site.

just prepare

Builds the Rust library, the CLI, the Node.js library, and the Web site. Then all tests are run.

License

Apache License 2.0 (Apache-2.0)

Dependencies

~4.5–8.5MB
~149K SLoC