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

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