Release Notes 0.6.0 – OpenAPI support

Date: May 13, 2018

What’s New?

Support for OpenAPI 3.0 specifications written in YAML or JSON.
Supports OpenAPI 3.0 specifications written in YAML or JSON

Create a new OpenAPI 3.0 specification from the ‘File > New’ context menu.
Create new OpenAPI 3.0 specification

OpenAPI 3.0 completions for:
– Property names.
– Property values with a fixed amount of values, e.g. the styles property where, depending on the parameter location, values can be form, matrix, simple, label, spaceDelimited, pipeDelimited or deepObject.
– Suggested values for media types, HTTP status codes and software licenses.
– Basic support for JSON reference completions.

Insert template for required properties and fixed values, e.g. when you choose ‘tags’ from the completions, a new tags array is created with a new tag object.
Insert tags template demonstration

Validate the OpenAPI 3.0 specification:
– Valid type, e.g. show an error when a string is defined, but a number was expected.
– Valid property names.

  • Most objects only allow a set of predefined property names. An error message is shown if the property name is not allowed.
  • Other objects require its properties to be in a certain format, e.g. the components object, where all the fixed properties (schemas, responses, etc.) are objects which must use properties that match the regular expression:
    ‘^[a-zA-Z0-9\.\-_]+$’.
  • Some objects have mutually exclusive properties, e.g. a parameter object can have either an example or examples definition.
  • Check that properties aren’t defined multiple times in the same object. This applies to tags and operation parameters.

– Required properties, e.g. a server variable object must have a default property.
– Property value validations.

  • Make sure the value is in the right format. This applies to the server object url, other url values and emails.
  • A schema object must not have both readOnly and writeOnly marked as true.

– Specification validations. Validations that go beyond the validation of property names and values.

  • Make sure all operationId values are unique.
  • Validate that a path item’s parameters don’t include duplicate parameters. A unique parameter is defined by a combination of its ‘name’ and ‘in’ values.
  • If a parameter’s ‘in’ value is ‘path’, then the ‘name’ value must correspond to the associated path segment from the path property name in the paths object.