Ensures that a schema's structural properties match its declared type
. In particular:
- A schema of type
object
must not include anitems
field. - A schema of type
array
must not include aproperties
field.
OAS | Compatibility |
---|---|
2.0 | ✅ |
3.0 | ✅ |
3.1 | ✅ |
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
items
to define their content. Includingproperties
is 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: error
properties:
user:
type: object
properties:
id:
type: string
items:
type: number
Error: An object
type should not include an items
field.
properties:
tags:
type: array
properties:
name:
type: string
Error: An array
type should not include a properties
field.
properties:
user:
type: object
properties:
id:
type: string
name:
type: string
properties:
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