architect-restify

Expose restify server as architect plugin

Usage no npm install needed!

<script type="module">
  import architectRestify from 'https://cdn.skypack.dev/architect-restify';
</script>

README

architect-restify build status NPM version

expose restify server rest as architect plugin.

Installation

npm install --save architect-restify

Config Format

{
  "packagePath": "architect-restify",
  port: process.env.PORT || 8080,
  host: process.env.IP || "0.0.0.0"
}

Or With plugins :

{
  packagePath: "architect-restify",
  port: process.env.PORT || 8080,
  host: process.env.IP || "0.0.0.0"
  plugins: {
    bodyParser : {
      mapParams : false
    }
  }
}

Usage

Boot Architect :

var path = require('path');
var architect = require("architect");

var configPath = path.join(__dirname, "config.js");
var config = architect.loadConfig(configPath);

architect.createApp(config, function (err, app) {
    if (err) {
        throw err;
    }
    console.log("app ready");
});

Configure Architect with config.js :

module.exports = [{
    packagePath: "architect-restify",
    port: process.env.PORT || 8080,
    host: process.env.IP || "0.0.0.0"
}, './routes'];

And register your routes in ./routes/index.js :

module.exports = function setup(options, imports, register) {
    var rest = imports.rest;

    // register routes 
    rest.get('/catalogue', function (req, res, next) {
        res.write("{'message':'hello, world'}");
    res.end();
    });
    
    register();
};
// Consume rest plugin
module.exports.consumes=['rest'];

Options

  • port : tcp port to listent to
  • host : host to listen to
  • socket: unix socket to listen
  • interface : network interface name to listen to (must match os.networkInterfaces)
  • family : interface address family to listen to (with interface)
  • plugins: a hash containing either a restify bundled plugin or a function that returns a plugin.