mecanizou-routing
v2.1.2
Published
Routing utilities
Downloads
435
Readme
Mecanizou Serverless Routing Library
This module adds some utilities to handle serverless services routing correctly.
Install
npm install --save mecanizou-routing
How to use
We have two basic utilities, both working with the same context routes list (see model below):
- InsertAuthorizerRoutes (Adds routes to our dynamoDB permission table)
- RouteMapBuilder (Returns route map ready to add using the STS api.addRoutes)
Context Routes List Model
//...
const contextRoutes = [
{
path: '/vehicles', // Gateway route path
method: 'POST', // HTTP Method accepted
function: createVehicleFunction, // Variable that represents the respective sst.Function
roles: ['MecanizouAdmin'], // Array of authorized role names
},
{
path: '/vehicles/{id}',
method: 'GET',
function: findVehicleFunction,
roles: ['MecanizouAdmin', 'MecanizouUser'],
},
//...
];
//...
InsertAuthorizerRoutes
Inside your context stack:
// ES5: const { InsertAuthorizerRoutes } = require('mecanizou-routing');
import { InsertAuthorizerRoutes } from 'mecanizou-routing';
//...
const insertAuthorizerRoutes = new InsertAuthorizerRoutes(
{
routes: contextRoutes, // Context route list created as in the model above
domainName: props.domainName, // Domain name shared between all children contexts
contextName: 'Vehicles', //Context name
}
);
const callInsertAuthorizerRoutes = insertAuthorizerRoutes.execute(this);
callInsertAuthorizerRoutes.node.addDependency(props.api);
//...
RouteMapBuilder
Inside your context stack:
// ES5: const { RouteMapBuilder } = require('mecanizou-routing');
import { RouteMapBuilder } from 'mecanizou-routing';
//...
const apiRoutes = new RouteMapBuilder(contextRoutes).execute(); // Context route list created as in the model above
props.api.addRoutes(this, apiRoutes); // Add routes to our Gateway
//...