This rule ensures that schema objects define constraints restricting the size of the underlying data.
Defining constraints enhances the robustness and reliability of the API’s structure.
The schema-constraints
rule is designed to ensure that all schema objects
define constraints restricting the size of the underlying data. This includes:
The configuration should be an object whose keys are supported schema types, and values are boolean values. At least one schema type must be specified.
Supported schema types are integer
, number
, string
, array
and object
.
By default, constraints for all supported schema types are verified.
Configuration Example. The rule with the following configuration checks only array and object schemas, and does not check numbers and strings.
lint:
rules:
schema-constraints:
- warning
- array: true
object: true
Good.
components:
schemas:
User:
type: object
properties:
username:
type: string
maxLength: 20
pattern: "^[a-z0-9_-]{3,16}$"
roles:
type: array
items:
type: string
maxItems: 5
age:
type: integer
minimum: 18
maximum: 100
maxProperties: 3
Bad.
components:
schemas:
User:
type: object
properties:
username:
type: string
roles:
type: array
items:
type: string
age:
type: integer
If your API does not require specific constraints on its schema objects, you may not need to use this rule.
This rule is compatible with all OpenAPI 3.x versions.