Home

Awesome

json-schema-hyper

Please note this library is not ready for production use.

JSON Hyper-Schema, as specified in the IETF Draft spec.

This component extends the behavior of JSON Schema, as implemented in json-schema-core, providing

Note that this component does not deal with aspects of the spec related to HTTP request/response, e.g. schema and targetSchema pre- and post- validation, setting Accept headers, instance correlation via HTTP response headers, etc. For this, see json-schema-agent.

Note also this component does not depend on JSON Schema validation, which is implemented as a separate core plugin (json-schema-valid).

Installation

component:

$ component install ericgj/json-schema-hyper

npm:

$ npm install json-schema-hyper-component

Example


var core = require('json-schema-core')
  , hyper = require('json-schema-hyper')
  , Schema = core.Schema

Schema.use(hyper);

var schema = new Schema().parse( schemaObject );

// resolve links in root path of instance, returns a Links object
// or an array of Links objects if the root path of the instance is an array
var links = schema.resolveLinks( instanceObject );

// find the first link with rel == 'search'
var searchLink = links.rel('search');

// find the first link with mediaType == 'application/xml'
var altLink = links.mediaType('application/xml');

// find the first link rel == 'alternate' and mediaType == 'application/xml',
// with method == 'GET'
var rssLink = links.alternate('application/atom+xml', {method: 'GET'});


// or simply use correlation methods as shortcuts to the above

var correlation = schema.bind(instanceObject);

correlation.links();
correlation.rel('search');
correlation.mediaType('application/xml');
correlation.alternate('application/atom+xml', {method: 'GET'});

API

TODO

License

MIT