no-schema-type-mismatch
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 | ✅ |
API design principles
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.
Configuration
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
Examples
Incorrect Examples
Object type with an items
field
properties:
user:
type: object
properties:
id:
type: string
items:
type: number
Error: An object
type should not include an items
field.
Array type with a properties
field
properties:
tags:
type: array
properties:
name:
type: string
Error: An array
type should not include a properties
field.
Correct Examples
Object type with proper properties
properties:
user:
type: object
properties:
id:
type: string
name:
type: string
Array type with proper items
properties:
tags:
type: array
items:
type: string
Related rules
- configurable rules
- no-invalid-media-type-examples
- no-invalid-parameter-examples
- no-invalid-schema-examples