Basic parsing functionality that reads OpenAPI/Swagger files in JSON or YAML format and converts them to JavaScript objects. This method validates file format and version compatibility but does not resolve $ref pointers or perform comprehensive validation.
Parses OpenAPI/Swagger specification files and returns them as JavaScript objects.
/**
* Parses the given OpenAPI/Swagger API file
* @param path - File path or URL of the OpenAPI definition (optional if api provided)
* @param api - OpenAPI definition object to parse instead of reading from path
* @param options - Parsing options (optional)
* @param callback - Error-first callback (optional, returns Promise if omitted)
* @returns Promise resolving to the parsed OpenAPI definition
*/
function parse(
path?: string,
api?: OpenAPI.Document,
options?: SwaggerParser.Options,
callback?: SwaggerParser.ApiCallback
): Promise<OpenAPI.Document>;Parse method available on SwaggerParser instances.
/**
* Instance method for parsing OpenAPI/Swagger specifications
* @param path - File path or URL of the OpenAPI definition
* @param api - OpenAPI definition object to parse instead of reading from path
* @param options - Parsing options
* @param callback - Error-first callback
* @returns Promise resolving to the parsed OpenAPI definition
*/
public parse(
path?: string,
api?: OpenAPI.Document,
options?: SwaggerParser.Options,
callback?: SwaggerParser.ApiCallback
): Promise<OpenAPI.Document>;Usage Examples:
import SwaggerParser from "@apidevtools/swagger-parser";
// Parse from file path
const api = await SwaggerParser.parse("./petstore.yaml");
// Parse from URL
const api = await SwaggerParser.parse("https://api.example.com/openapi.json");
// Parse from object
const apiObject = { openapi: "3.0.0", info: { title: "My API", version: "1.0.0" } };
const api = await SwaggerParser.parse(apiObject);
// Parse with options
const api = await SwaggerParser.parse("./api.yaml", {
resolve: {
file: false, // Don't resolve file references
http: true // Allow HTTP references
}
});
// Using callback style
SwaggerParser.parse("./api.yaml", (err, api) => {
if (err) {
console.error(err);
} else {
console.log("Parsed API:", api.info.title);
}
});
// Using instance
const parser = new SwaggerParser();
const api = await parser.parse("./api.yaml");Parse method throws SyntaxError for:
try {
const api = await SwaggerParser.parse("./invalid-api.yaml");
} catch (error) {
if (error instanceof SyntaxError) {
console.error("Invalid API format:", error.message);
}
}