genet-api-framework

Handle shared functionality between api microservices

Usage no npm install needed!

<script type="module">
  import genetApiFramework from 'https://cdn.skypack.dev/genet-api-framework';
</script>

README

genet-api-framework

const genet = require('genet-api-framework');

Returns an instance of a Genet object with the following functionality

Logging

Request and Error Logging

Pass your express app and routes constructor function into setupRoutes method:

Example Routes function

export default function(app) {
    return {
        application: app.use('/app', [AuthMiddleware.validApiToken, AuthMiddleware.validAppToken], Application.router),
        auth: app.use('/auth', [AuthMiddleware.validApiToken, AuthMiddleware.validAppToken], Authentication.router),
        token: app.use('/token', [AuthMiddleware.validApiToken, AuthMiddleware.validAppToken], Token.router),
        nsauth: app.use('/nsauth', [AuthMiddleware.validAppToken, AuthMiddleware.validUserToken], NSAuthentication.router)
    }
}

app.js using genet to set up routes with request and error logging

const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const genet = require('genet-api-framework');
const logger = genet.logger

import './config/dynamoose';

const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
import routes from './config/routes';

genet.setupRoutes(app, routes, process.env.NODE_ENV)
logger.info('Routes applied...')

module.exports = app;