Restify Middleware for Hosting Falcor Data Sources.
JavaScript
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.eslintrc
.gitignore
OSSMETADATA
README.md
gulpfile.js
package.json

README.md

falcor-restify

Restify Middleware for Hosting Falcor Data Sources.

Usage

Minimalistic example

'use strict';

var bunyan = require('bunyan');
var restifyMiddleware = require('falcor-restify');
var restify = require('restify');
var falcor = require('falcor');
var rx = require('rx');
var Router = require('falcor-router');

var LOG = bunyan.createLogger({
    name: 'demo',
    level: bunyan.DEBUG,
    src: true
});

var client = restify.createJsonClient({
    url: 'http://api-global.netflix.com/',
    log: LOG.child({
        component: 'server',
        level: bunyan.INFO,
        serializers: bunyan.stdSerializers
    }),
    version: '*'
});

var server = restify.createServer({
    log: LOG.child({
        component: 'server',
        level: bunyan.INFO,
        streams: [{
            // This ensures that if we get a WARN or above all debug records
            // related to that request are spewed to stderr - makes it nice
            // filter out debug messages in prod, but still dump on user
            // errors so you can debug problems
            level: bunyan.DEBUG,
            type: 'raw',
            stream: new restify.bunyan.RequestCaptureStream({
                level: bunyan.WARN,
                maxRecords: 100,
                maxRequestIds: 1000,
                stream: process.stderr
            })
        }],
        serializers: bunyan.stdSerializers
    })
});

server.use(restify.requestLogger());
server.use(restify.queryParser());

server.on('after', restify.auditLogger({
    log: LOG.child({
        component: 'audit'
    })
}));

server.on('uncaughtException', function (req, res, route, err) {
    req.log.error(err, 'got uncaught exception');
});

// Create a JSON Graph object using a Falcor Model
server.get('/model.json', restifyMiddleware(function (req, res, next) {
    return new falcor.Model({
        cache: {
            greeting: "Hello World"
        }
    });
}));

server.listen(8080, function() {
  LOG.info('%s listening at %s', server.name, server.url);
});