1.0.1 • Published 8 years ago

feathers-hook-validation-jsonschema v1.0.1

Weekly downloads
13
License
ISC
Repository
github
Last release
8 years ago

feathers-hook-validation-jsonschema

Validate Feathers resources using JSON Schema.

Use

Add the hook into a Feathers flow. Initialize it with either a JSON Schema object, or the URL to a schema object. AJV options may be passed as a second parameter during initialization.

  'use strict'

  import { compileSchema as validator, compileSchemaFromUrl as validatorFromUrl } from 'feathers-hook-validation-jsonschema'

  // Initialize a validator with a schema URL.
  const validate = validator({
    title: 'Example Schema',
    type: 'object',
    properties: {
      firstName: {
        type: 'string'
      },
      lastName: {
        type: 'string'
      },
      age: {
        description: 'Age in years',
        type: 'integer',
        minimum: 0
      }
    },
    required: ['firstName', 'lastName']
  })

  // Initialize a validator with a schema URL.
  const validateFromUrl = validatorFromUrl('https://cdn.rawgit.com/json-schema-org/json-schema-spec/master/schema.json')

  // Add the validator to the Feathers service(s).
  // (Assumes the service has already been initialized.)
  app.service('stuff').before({
    create: [ validate ],
    patch: [ validate ],
    update: [ validate ]
  })

  app.service('things').before({
    create: [ validateFromUrl ],
    patch: [ validateFromUrl ],
    update: [ validateFromUrl ]
  })

Development

This module currently uses the AJV validation library for the actual validation.