Skip to content

Repository files navigation

ajv-openapi

LicenseNPM versionNPM downloadBuild StatusTest CoverageDependency Status

Ajv plugin that adds Open API v3 data types (formats: int32, int64, float, double, byte) validation.

Installation

npm install ajv ajv-openapi

Usage

constAjv=require("ajv");constopenApi=require("ajv-openapi");constajv=openApi(newAjv());

Configuration for full OpenAPI compatibility

By default, the plugin only adds missing formats to Ajv validator. To configure Ajv to be fully Open API v3 compliant, you should configure the plugin like this:

constAjv=require("ajv");constopenApi=require("ajv-openapi");constajvOptions={schemaId: "auto",format: "full",coerceTypes: true,unknownFormats: "ignore",useDefaults: true,nullable: true};constopenApiOptions={useDraft04: true};constajv=openApi(newAjv(ajvOptions),openApiOptions);

Examples

console.log(ajv.compile({type: "integer",format: "int32"})(2147483648));console.log(ajv.compile({type: "integer",format: "int32"})(-2147483649));console.log(ajv.compile({type: "integer",format: "int32"})(1.23));console.log(ajv.compile({type: "integer",format: "int32"})(123));>false>false>false>trueconsole.log(ajv.compile({type: "integer",format: "int64"})(Number.MAX_VALUE));console.log(ajv.compile({type: "integer",format: "int64"})(Number.MIN_VALUE));console.log(ajv.compile({type: "integer",format: "int64"})(1.23));console.log(ajv.compile({type: "integer",format: "int64"})(123));>false>false>false>trueconsole.log(ajv.compile({type: "number",format: "float"})(Number.MAX_VALUE));console.log(ajv.compile({type: "number",format: "float"})(Number.MIN_VALUE));console.log(ajv.compile({type: "number",format: "float"})(1.23));console.log(ajv.compile({type: "number",format: "float"})(123));>false>false>true>trueconsole.log(ajv.compile({type: "number",format: "double"})(Number.MAX_VALUE));console.log(ajv.compile({type: "number",format: "double"})(Number.MIN_VALUE));console.log(ajv.compile({type: "number",format: "double"})(1.23));console.log(ajv.compile({type: "number",format: "double"})(123));>true>true>true>trueconsole.log(ajv.compile({type: "string",format: "byte"})("MTIz"));console.log(ajv.compile({type: "string",format: "byte"})("abc"));console.log(ajv.compile({type: "string",format: "byte"})(1));console.log(ajv.compile({type: "string",format: "byte"})("5L2g5aW95ZWK"));>true>false>false>true

About

Ajv plugin to add Open API v3 data type formats support

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages