1.1.0 • Published 2 years ago

slseasyrouting v1.1.0

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

SLS Easy Routing

A lib to easily make routes in lambdas using the Serverless Framework

🤔 Why would I use it?

Sometimes there is no need of having multiple lambdas, for example, let's suppose we have one lambda to get the user email and other lambda to get the user phone number. In this case, we could have only one lambda with two endpoints, /email and /phone. Doing this way, you will have a much more organized AWS and it will be possible to separate lambdas by domain. To make this, you would need to create something to handle the requests incoming, by checking the path and method and then, if matching, run a certain function. With this lib, you can easily do this :)

💻 Requirements

You can find how to this here

💽 Installation

hello@world:~$ yarn add slseasyrouting

or

hello@world:~$ npm i slseasyrouting

🚀 Usage

First, you'll need to create a routes file, I recommend something like routes.ts, inside it, create a class called Routes and add the @Route decorator, inside the class, add a constructor containing the event and then the methods with the desired decorator, check the example:

import { getDate, hello } from "./services/hello.service";
import { Route, Post, Get } from "slseasyrouting";

@Route
export class Routes {
  constructor(private readonly event: any) {}

  @Post("/")
  async helloRoute(event) {
    return await hello(event.body.name);
  }

  @Get("/")
  async getTodaysDate() {
    return await getDate();
  }
}

Then, at your handler.ts file, add return new Routes(event), it will look like this:

import { middyfy } from '@libs/lambda';
import { Routes } from './routes';

const handler = async (event) => {
  console.log(event);
  return new Routes(event);
};

export const main = middyfy(handler);

Inside the decorator, you can pass the desired endpoint, for example, @Get('/users/email').

This lib contains some responses too in case you want to use, for example, if you want to throw a 401, you can use return UnAuthorized(). You can pass a custom message too by providing it inside the function parameters, for example: return UnAuthorized('Get out!').

🗿 Responses

As said before, this lib contains some functions that you can call for responses. At the moment we have:

functionstatus code
UnAuthorized401
NotFound404
Gone410
BadRequest400
ServiceUnavailable503
1.1.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago