Ensures that a schema's structural properties match its declared type. In particular:
- A schema of type
objectmust not include anitemsfield. - A schema of type
arraymust not include apropertiesfield.
| OAS | Compatibility |
|---|---|
| 2.0 | ✅ |
| 3.0 | ✅ |
| 3.1 | ✅ |
| 3.2 | ✅ |
| AsyncAPI | Compatibility |
|---|---|
| 2.6 | ✅ |
| 3.0 | ✅ |
| Arazzo | Compatibility |
|---|---|
| 1.0 | ✅ |
When designing an API schema, the defined type should be consistent with its structure:
- Objects are collections of key/value pairs. They should be defined using
properties(or additionalProperties) and must not useitems. - Arrays are ordered lists of items and must use
itemsto define their content. Includingpropertiesis invalid.
This rule helps catch typos and misconfigurations early in your API definition.
| Option | Type | Description |
|---|---|---|
| severity | string | Possible values: off, warn, error. Default is error in the recommended configuration. |
Example configuration:
rules:
no-schema-type-mismatch: errorproperties:
user:
type: object
properties:
id:
type: string
items:
type: numberError: An object type should not include an items field.
properties:
tags:
type: array
properties:
name:
type: stringError: An array type should not include a properties field.
properties:
user:
type: object
properties:
id:
type: string
name:
type: stringproperties:
tags:
type: array
items:
type: string- no-enum-type-mismatch
- no-required-schema-properties-undefined
- configurable rules
- no-invalid-media-type-examples
- no-invalid-parameter-examples
- no-invalid-schema-examples