API Specification Converter

2.12.0 · active · verified Tue Apr 21

The `api-spec-converter` package provides a utility for transforming API descriptions between various popular formats, including OpenAPI (formerly Swagger), RAML, API Blueprint, I/O Docs, Google Discovery, and WADL. As of its current stable version, 2.12.0, its core functionality is robust for conversions *to* OpenAPI 2.0 and *from* OpenAPI 2.0 to OpenAPI 3.x. This specialized focus means it does not offer full bidirectional conversion support for all listed formats. The library offers both a command-line interface (CLI) for quick conversions and a programmatic API for Node.js and browser environments, supporting both traditional callback and modern Promise-based asynchronous patterns. While a specific release cadence isn't explicitly stated, the version numbering indicates ongoing development and maintenance, making it a reliable choice for its specific conversion strengths within the API ecosystem.

Common errors

Warnings

Install

Imports

Quickstart

This example demonstrates how to programmatically convert an OpenAPI 1.x (Swagger 1.x) specification from a URL to OpenAPI 2.0, fill in any missing required fields with dummy data, validate the resulting specification, and then write it to a local JSON file.

const Converter = require('api-spec-converter');
const fs = require('fs');

Converter.convert({
  from: 'swagger_1',
  to: 'swagger_2',
  source: 'https://raw.githubusercontent.com/LucyBot-Inc/api-spec-converter/master/test/input/swagger_1/petstore/pet.json',
})
  .then(function(converted) {
    // Optionally fill missing required fields with dummy data
    converted.fillMissing();

    // Validate the converted specification
    return converted.validate()
      .then(function (result) {
        if (result.errors && result.errors.length > 0)
          return console.error('Validation Errors:', JSON.stringify(result.errors, null, 2));
        if (result.warnings && result.warnings.length > 0)
          console.warn('Validation Warnings:', JSON.stringify(result.warnings, null, 2));

        // Save the converted spec to a file
        fs.writeFileSync('converted-swagger2.json', converted.stringify({ syntax: 'json', order: 'openapi' }));
        console.log('Converted spec saved to converted-swagger2.json');
      })
      .catch(function(validationErr) {
          console.error('Validation failed:', validationErr);
      });
  })
  .catch(function(conversionErr) {
    console.error('Conversion failed:', conversionErr);
  });

view raw JSON →