Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



6 Commits

Repository files navigation

Swagger Node Client

Create client APIs for Swagger API Specifications.

Given a schema object, this tool returns an api object which can be used to interact with the API server described by the schema. The schema can be generated using fetch-swagger-schema).


npm install swagger-node-client to install, then var swaggerNodeClient = require('swagger-node-client') and pass in your schema object (generated using fetch-swagger-schema).


First, a simple example. Let's say you saved a schema json file, then loaded it into your app as the schema variable. Now you can call operations on the API by using swaggerNodeClient:

// Assuming the variable schema exists
var swaggerNodeClient = require('swagger-node-client');
var api = swaggerNodeClient(schema);

// for apiKey authorization use: api.auth('my-token')
// for basicAuth use: api.auth('username', 'password')
// authorization may be set for any level (api, api.resource, or api.operation){

Here's a more advanced case in which we're leveraging promises to implement a 'getOrCreate' method, which doesn't actually exist within the api:

var swaggerNodeClient = require('swagger-node-client');
var api = swaggerNodeClient(schema);

function getOrCreate(id, name){
        // If pet doesn't exist, create a new one.
        if(response.status === 404){
            var pet = {id: id, name: name};
                return pet;

        // Unknown error

getOrCreate(23, 'bob').then(function(pet){
    console.log('Got pet:', pet);
}, function(error){


api = swaggerNodeClient(schema)

  • schemaObject - A json object describing the schema (generated by fetch-swagger-schema).
  • api - An object which can be used as the api for the given schema. The first-level objects are the resources within the schema and the second-level functions are the operations which can be performed on those resources.


A map of all the resources as defined in the schema to their operation handler (e.g.

responsePromise = api.<resource>.<operationHandler>(data, options)

This is the actual operation function to initiate a request to the API endpoint (e.g.,

The operation handler takes two parameters:

  • data - A map of the operation data parameters. If the operation only has one parameter, the value may be used directly (i.e., callback) is the same as{petId: 1}, callback)).
  • options - A map of the options to use when calling the operation (see below for full list).

The response promise is an ES6 promise. A HTTP response in the 200s range will result in a resolved promise and anything else will result in a rejected promises. A resolved promise value is whatever the server responded with (JSON is automatically parsed). A rejected promise value is a map with a status, data, and error properties, where the status is the HTTP status, data is the response body from the server, and error is a JavaScript error (if any occurred).

Here's an example:

// use of .then(successHandler, failHandler)
    console.log('successful response:', response);
}, function(response){
    console.log('request failed due to error:', response.error);


After installing nodejs execute the following:

git clone
cd swagger-node-client
npm install
npm run dev

The build engine will test and build everything, start a server hosting the example folder on localhost:3000, and watch for any changes and rebuild when nescessary.

To generate minified files in dist:

npm run dist


Create clients for Swagger API Specifications.