Date: May 13, 2018
What’s New?
Support for OpenAPI 3.0 specifications written in YAML or JSON.
Create a new OpenAPI 3.0 specification from the ‘File > New’ context menu.
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.
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.