2.1.2 • Published 2 years ago

mecanizou-routing v2.1.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

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

//...
2.1.2

2 years ago

2.1.1

2 years ago

2.0.0

2 years ago

1.2.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.1.2

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago