This extension can be used to validate and lint OpenAPI 3.0.x documents, and convert between OpenAPI 2.0 and 3.0.0. It provides 11 Visual Studio Code commands:
- OpenAPI Validate - which fully validates your OpenAPI document against the specification
- OpenAPI Lint - which additionally applies a lightly-opinionated set of best-practices
- OpenAPI Resolve and Validate - which pulls in external
$refs before validating
- OpenAPI Resolve and Lint - which pulls in external
$refs before linting
- OpenAPI Resolve (Bundle) - which resolves external
$refs to a new window
- OpenAPI 2.0 to 3.0.0 (YAML) - which converts the current OpenAPI 2.0 document to 3.0.0 in YAML
- OpenAPI 2.0 to 3.0.0 (JSON) - which converts the current OpenAPI 2.0 document to 3.0.0 in JSON
- OpenAPI 2.0 to 3.0.0 (YAML/Resolved) - like the above but resolving external
- OpenAPI 2.0 to 3.0.0 (JSON/Resolved) - like the above but resolving external
- OpenAPI to JSON - which simply translates the current document to JSON
- OpenAPI to YAML - which simply translates the current document to YAML
The validator enforces semantic restrictions which cannot be expressed by the JSON Schema which drives the intellisense features, so it will pick up on many more errors.
The linter applies a lightly opinionated set of 'best practices' to your API document, making it complete and comprehensive, as opposed to merely minimally valid.
The best documentation currently for the linter rules is that of Speccy, which shares code with this project. The linter rules format is also documented.
- Validation using oas-validator from OAS-Kit
- Linting using oas-linter also from OAS-Kit
- Resolution using oas-resolver also from OAS-Kit
- Conversion using swagger2openapi also from OAS-Kit
- OAS v3 intellisense for files named
- OAS v2 intellisense for files named
- Conversion between JSON and YAML
- Snippets (minimal valid openapi/swagger JSON and YAML documents)
- AsyncAPI v1.2.0 intellisense for files named
The extension should work as-is
No configuration is currently possible or needed.
- Messages need better formatting
- Jump-to-error functionality not implemented yet
- No way to override/amend linter rules yet
See the CHANGELOG