Swagger Parser

Swagger 2.0 and OpenAPI 3.0 parser/validator

$Refs class

When you call the resolve method, the value that gets passed to the callback function (or Promise) is a $Refs object. This same object is accessible via the parser.$refs property of SwaggerParser objects.

This object is a map of JSON References and their resolved values. It also has several convenient helper methods that make it easy for you to navigate and manipulate the JSON References.

Properties
Methods

circular

This property is true if the API contains any circular references. You may want to check this property before serializing the dereferenced schema as JSON, since JSON.stringify() does not support circular references by default.

let parser = new SwaggerParser();
await parser.dereference("my-api.yaml");

if (parser.$refs.circular) {
  console.log('The API contains circular references');
}

paths([types])

let $refs = await SwaggerParser.resolve("my-api.yaml");

// Get the paths of ALL files in the API
$refs.paths();

// Get the paths of local files only
$refs.paths("fs");

// Get all URLs
$refs.paths("http", "https");

values([types])

let $refs = await SwaggerParser.resolve("my-api.yaml");

// Get ALL paths & values in the API
// (this is the same as $refs.toJSON())
let values = $refs.values();

values["schemas/person.yaml"];
values["http://company.com/my-api.yaml"];

exists($ref)

let $refs = await SwaggerParser.resolve("my-api.yaml");

$refs.exists("schemas/person.yaml#/properties/firstName"); // => true
$refs.exists("schemas/person.yaml#/properties/foobar");    // => false

get($ref, [options])

let $refs = await SwaggerParser.resolve("my-api.yaml");
let value = $refs.get("schemas/person.yaml#/properties/firstName");

set($ref, value, [options])

Sets the value at the given path in the API. If the property, or any of its parents, don’t exist, they will be created.

let $refs = await SwaggerParser.resolve("my-api.yaml");
$refs.set("schemas/person.yaml#/properties/favoriteColor/default", "blue");