npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

postman-code-generators

v1.14.0

Published

Generates code snippets for a postman collection

Downloads

76,251

Readme

Manage all of your organization's APIs in Postman, with the industry's most complete API development environment.

Supercharge your API workflow.
Modern software is built on APIs. Postman helps you develop APIs faster.

postman-code-generators

This module converts a Postman SDK Request Object into a code snippet of chosen language.

Every code generator has two identifiers: language and variant.

  • language of a code generator is the programming language in which the code snippet is generated.
  • variant of a code generator is the methodology or the underlying library used by the language to send requests.

List of supported code generators:

| Language | Variant | |-----------|---------------| | C | libcurl | | C# | HttpClient | | C# | RestSharp | | cURL | cURL | | Dart | http | | Go | Native | | HTTP | HTTP | | Java | OkHttp | | Java | Unirest | | JavaScript | Fetch | | JavaScript | jQuery | | JavaScript | XHR | | Kotlin | OkHttp | | NodeJs | Axios | | NodeJs | Native | | NodeJs | Request | | NodeJs | Unirest | | Objective-C| NSURLSession| | OCaml | Cohttp | | PHP | cURL | | PHP | Guzzle | | PHP | pecl_http | | PHP | HTTP_Request2 | | PowerShell | RestMethod | | Python | http.client | | Python | Requests | | R | httr | | R | RCurl | | Rust | Reqwest | | Ruby | Net:HTTP | | Shell | Httpie | | Shell | wget | | Swift | URLSession |

Table of contents

Getting Started

To install postman-code-generators as your dependency

$ npm install postman-code-generators

To get a copy on your local machine

$ git clone https://github.com/postmanlabs/postman-code-generators.git

Prerequisite

To run any of the postman-code-generators, ensure that you have NodeJS >= v8. A copy of the NodeJS installable can be downloaded from https://nodejs.org/en/download/package-manager.

Usage

Using postman-code-generators as a Library

There are three functions that are exposed in postman-code-generators: getLanguageList, getOptions, and convert.

getLanguageList

This function returns a list of supported code generators.

Example:
var codegen = require('postman-code-generators'), // require postman-code-generators in your project
    supportedCodegens = codegen.getLanguageList();
    console.log(supportedCodegens);
    // output:
    // [
    //   {
    //     key: 'nodejs',
    //     label: 'NodeJs',
    //     syntax_mode: 'javascript',
    //     variant: [
    //       {
    //         key: 'Requests'
    //       },
    //       {
    //         key: 'Native'
    //       },
    //       {
    //         key: 'Unirest'
    //       }
    //     ]
    //   },
    //   ...
    // ]

getOptions

This function takes in three parameters and returns a callback with error and supported options of that code generator.

  • language - language key from the language list returned from getLanguageList function
  • variant - variant key provided by getLanguageList function
  • callback - callback function with first parameter as error and second parameter as array of options supported by the codegen.

A typical option has the following properties:

  • name - Display name
  • id - unique ID of the option
  • type - Data type of the option. (Allowed data types: boolean, enum, positiveInteger)
  • default - Default value. The value that is used if this option is not specified while creating code snippet
  • description - User friendly description.
Example:
var codegen = require('postman-code-generators'), // require postman-code-generators in your project
    language = 'nodejs',
    variant = 'Request';

    codegen.getOptions(language, variant, function (error, options) {
      if (error) {
        // handle error
      }
      console.log(options);
    });
// output: 
//     [
//     {
//       name: 'Set indentation count',
//       id: 'indentCount',
//       type: 'positiveInteger',
//       default: 2,
//       description: 'Set the number of indentation characters to add per code level'
//     },
//     {
//       name: 'Set indentation type',
//       id: 'indentType',
//       type: 'enum',
//       availableOptions: ['Tab', 'Space'],
//       default: 'Space',
//       description: 'Select the character used to indent lines of code'
//     },
//     ...
//   ];

convert

This function takes in five parameters and returns a callback with error and generated code snippet

  • language - lang key from the language list returned from getLanguageList function
  • variant - variant key provided by getLanguageList function
  • request - Postman-SDK Request Object
  • options - Options that can be used to configure generated code snippet. Defaults will be used for the unspecified attributes
  • callback - callback function with first parameter as error and second parameter as string for code snippet
Example:
var codegen = require('postman-code-generators'), // require postman-code-generators in your project
    sdk = require('postman-collection'), // require postman-collection in your project
    request = new sdk.Request('https://www.google.com'),  //using postman sdk to create request 
    language = 'nodejs',
    variant = 'request',
    options = {
        indentCount: 3,
        indentType: 'Space',
        trimRequestBody: true,
        followRedirect: true
    };
codegen.convert(language, variant, request, options, function(error, snippet) {
    if (error) {
        //  handle error
    }
    //  handle snippet
});

Development

Installing dependencies

This command will install all the dependencies in production mode.

$ npm install;

To install dev dependencies also for all codegens run:

$ npm run deepinstall dev; 

Testing

To run common repo test as well as tests (common structure test + individual codegen tests) for all the codegens

$ npm test; 

To run structure and individual tests on a single codegen

$ npm test <codegen-name>;
# Here "codege-name" is the folder name of the codegen inside codegens folder

Packaging

To create zipped package of all codegens

$ npm run package;

Note: The zipped package is created inside each codegen's folder.

To create zipped package of a single codegen

$ npm run package <codegen-name>

Contributing

Please take a moment to read our contributing guide to learn about our development process. Open an issue first to discuss potential changes/additions.

License

This software is licensed under Apache-2.0. Copyright Postman, Inc. See the LICENSE.md file for more information.