JSPM

  • Created
  • Published
  • Downloads 26
  • Score
    100M100P100Q56913F
  • License Apache-2.0

Middleware for easy development of JSON-API compatible APIs

Package Exports

  • jsonapify

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jsonapify) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

jsonapify

Build Status Dependencies Coverage Status

Middleware for easy development of JSON-API compatible APIs

Install

$ npm install jsonapify

Sample code

var auth = require('./auth');
var express = require('express');
var jsonapify = require('jsonapify');

var User = require('./models/user');
var roleResource = require('./roles').Resource;
var userResource = new jsonapify.resource(User, {
    type: 'users',
    id: {
        value: jsonapify.property('_id'),
        writable: false,
    },
    links: {
        self: {
            value: jsonapify.template('/users/{_id}'),
            writable: false,
        },
    },
    attributes: {
        email: jsonapify.property('email'),
        password: {
            value: jsonapify.property('password'),
            readable: false,
        },
    },
    relationships: {
        role: jsonapify.ref(roleResource, 'role'),
    },
});

var router = express.Router();
router.get('/', [
    auth.authenticateAccessToken(),
    auth.requirePrivilege('user:enum'),
    jsonapify.enumerate(userResource),
    jsonapify.errorHandler(),
]);

module.exports = exports = router;
exports.Resource = userResource;