Skip to content

A light-weight library to help you create APIs on the fly using express.js written in TypeScript

Notifications You must be signed in to change notification settings

naseif/API-Tools-TS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Nov 29, 2022
3118f8e · Nov 29, 2022

History

34 Commits
Apr 27, 2022
Dec 22, 2021
Nov 29, 2022
Dec 20, 2021
Dec 20, 2021
Dec 20, 2021
Dec 20, 2021
Apr 27, 2022
Nov 29, 2022
Apr 27, 2022
Apr 27, 2022

Repository files navigation

API-Tools-TS

A light-weight library to help you create APIs on the fly using express.js written in TypeScript.

Motivation

Creating RESTful APIs is not always the easiest, especially when you have a lot of endpoints and functions for each of this endpoints. API-Tools-TS (the name will be changed LOL) provides an easy way to deal with express.js for beginners in more structured way.

Installation

npm i api-tools-ts

Importing

TypeScript

import { APIController } from "api-tools-ts";

const api = new APIController(endpoint); // the main endpoint for the api you wish to create

JavaScript

const { APIController } = require("api-tools-ts");
const api = new APIController(endpoint); // the main endpoint for the api you wish to create

Example

Create an API with 2 different endpoints

import { APIController } from "api-tools-ts";

const api = new APIController("/api/v1");

api.AddEndPoint("/", "get", (req, res) => {
  res.status(200).json({ home: "home is now accessible" });
});
api.AddEndPoint("/:random", "get", (req, res) => {
  const random = req.params.random;
  res.status(200).json({ test: Math.round(Math.random() * Number(random)) });
});

api.startServer({useDefaultMiddlewares: 'true'}); // to apply default middlewares ["cors", "morgan", "helmet"]

Add multiple methods to single endpoint

import { APIController } from "api-tools-ts";

const api = new APIController("/api/v1");

const postUser = (req, res) => {
  res.status(200).json({ status: "ok", message: "User created successfully." });
}

const getUsers = (req, res) => {
  res.status(200).json({ status: "ok", message: "Here are all users" });
}

const deleteUser = (req, res) => {
  res.status(200).json({ status: "ok", message: "User deleted successfully" });
}

api.AddMultipleMethods("/users", ["get", "post", "delete"], [getUsers, postUser, deleteUser] );

api.startServer({useDefaultMiddlewares: 'true'});

Add custom middlewares

api.AddEndPoint("/user", "get", (req, res) => {
  res.status(200).json({ status: "ok", message: "Here are all users"});
})

api.AddMiddleWare("whatever", (req, res, next) => {
  console.log("I am activated");
  next();
})

api.startServer({useDefaultMiddlewares: 'true'});

API Server port is by default set to 51337. To change it, simply do:

api.port = <your port>

api.startServer({useDefaultMiddlewares: 'true'});

Method startServer

API-Tools-TS uses by default the following middlewares for better security and stability:

  • morgan
  • helmet
  • cors

If you do not wish to create your api with these milddlewares, set useDefaultMiddlewares to false when calling startServer.

api.startServer({useDefaultMiddlewares: 'false'});

About

A light-weight library to help you create APIs on the fly using express.js written in TypeScript

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published