reaction-gateway
v0.5.1
Published
API Reaction Gateway
Downloads
21
Readme
Reaction Gateway
Simple "just let me develop" API gateway for your enterprise platform.
Getting started
npm install reaction-gateway --save
Creating an app
const gateway = require('reaction-gateway')
This will create a gateway and setup endpoints for healthchecking.
Configuration
Reactor is already configured by default, but you can override anything. See the defaults section below for a list of defaults and what you can override.
How to configure your app
Create a /config folder in the root of your project with a file named default.js
default.js contents
module.exports = {
server: {
// You can over-ride this if you want to hide which gateway you're running.
name: 'Reactor',
// You can over-ride this if you want to as well.
version: '1.0.0',
// By default, will try port 8000 and use the next available, override here.
port: { from: 8000, to: 8999 },
// You can override the logo as well. Use a string or a script that exports a string.
logo: require('./inc/logo'),
// Where the data from services comes from.
persistence: 'sqllite://root:[email protected]'
},
services: {
defaults: {
model: {
freezeTableName: true
},
pagination: {
default: 20,
max: 1000
}
},
definitions: {
messages: { model: 'message', auto: true },
}
}
}
Defaults
Configuration is a snap!
Reactor comes with enough defaults so that you can just require it and be up and running.
module.exports = {
server: {
port: 3030, // By default, will try port 8000 and use the next available, override here.
version: '0.1.1', // By default, will use your package.json version, but you can override here.
logo: require('pathToYourLogoString'), // Default will output fancy "Reactor". Override here.
persistence: 'mysql://root:Makeitso1@localhost/admin'
},
services: {
defaults: {
model: {
freezeTableName: true
},
pagination: {
default: 20,
max: 1000
}
},
definitions: {
yourServiecName: {
model: 'yourModelName',
auto: true // If true, your service will be auto-generated based on your mode.
config: {
// Configuration you pass to your service.
}
}
}
}
}
Config options
server.port
Default { from: 8000, to: 8999 }
If you specify a number, the server will not start unless that port is free. If you specify a range using a { from: startingPort, to: endingPort }, the server will find the first free port within that range. The port that was chosen will be available using config.server.port
Technical details
Entry point
You start at src/index.js The logo is drawn, configuration is loaded, and the platform is started.