Supercharge your API workflow.
Modern software is built on APIs. Postman helps you develop APIs faster.
To use the converter as a Node module, you need to have a copy of the NodeJS runtime. The easiest way to do this is through npm. If you have NodeJS installed you have npm installed as well.
$ npm install openapi-to-postmanv2
In order to use the convert in your node application, you need to import the package using require
.
var openapi-converter = require('openapi-to-postmanv2')
The converter provides the following functions:
The convert function takes in your OpenAPI specification ( YAML / JSON ) and converts it to a Postman collection.
Signature: convert (data, options, callback);
data:
{ type: 'file', data: 'filepath' }
OR
{ type: 'string', data: '<entire OpenAPI string - JSON or YAML>' }
OR
{ type: 'json', data: OpenAPI-JS-object }
options:
{
schemaFaker: true,
requestNameSource: 'fallback',
indentCharacter: ' '
}
/*
All three properties are optional. Check the options section below for possible values for each option.
*/
callback:
function (err, result) {
/*
result = {
result: true,
output: [
{
type: 'collection',
data: {..collection object..}
}
]
}
*/
}
'schemaFaker'(boolean)
: whether to use json-schema-faker for schema conversion. Default:true
'requestNameSource'(string)
: The strategy to use to generate request names. url: use the request's URL as the name, fallback: Use the summary/operationId/URL (in that order) Default:fallback
'indentCharacter' (string)
: The character to use per level of indentation for JSON/XML data. Default:' '(space)
-
result
- Flag responsible for providing a status whether the conversion was successful or not -
reason
- Provides the reason for an unsuccessful conversion, defined only if result: false -
output
- Contains an array of Postman objects, each one with atype
anddata
. The only type currently supported iscollection
.
var fs = require('fs'),
Converter = require('openapi-to-postmanv2'),
openapiData = fs.readFileSync('sample-spec.yaml', {encoding: 'UTF8'});
Converter.convert({ type: 'string', data: openapiData },
{}, (err, conversionResult) => {
if (!conversionResult.result) {
console.log('Could not convert', conversionResult.reason);
}
else {
console.log('The collection object is: ', conversionResult.output[0].data);
}
}
);
The validate function is meant to ensure that the data that is being passed to the convert function is a valid JSON object or a valid (YAML/JSON) string.
The validate function is synchronous and returns a status object which conforms to the following schema
{
type: 'object',
properties: {
result: { type: 'boolean'},
reason: { type: 'string' }
},
required: ['result']
}
-
result
- true if the data looks like OpenAPI and can be passed to the convert function -
reason
- Provides a reason for an unsuccessful validation of the specification
The converter can be used as a CLI tool as well. The following command line options are available.
openapi2postmanv2 [options]
-
-V
,--version
Specifies the version of the converter -
-s <source>
,--spec <source>
Used to specify the OpenAPI specification (file path) which is to be converted -
-o <destination>
,--output <destination>
Used to specify the destination file in which the collection is to be written -
-t
,--test
Used to test the collection with an in-built sample specification -
-p
,--pretty
Used to pretty print the collection object while writing to a file -
-h
,--help
Specifies all the options along with a few usage examples on the terminal
Sample usage examples of the converter CLI
- Takes a specification (spec.yaml) as an input and writes to a file (collection.json) with pretty printing
$ openapi2postmanv2 -s spec.yaml -o collection.json -p
- Testing the converter
$ openapi2postmanv2 --test
postman | openapi | options | examples |
---|---|---|---|
collectionName | info.title | - | |
description | info.description + info.contact | - | |
collectionVariables | server.variables + pathVariables | - | |
folderName | paths.path | - | |
requestName | operationItem(method).operationId | default(operationId)-(requestName )enum['operationId','summary','url'] |
|
request.method | path.method | - | |
request.headers | parameter (in = header ) |
- | link |
request.body | operationItem(method).requestBody | - | |
request.url.raw | server.url (path level server >> openapi server) + path | - | |
request.url.variables | parameter (in = path ) |
- | link |
request.url.params | parameter (in = query ) |
- | {"key": param.name, "value": link} |
api_key in (query or header) | components.securitySchemes.api_key | - |