Skip to content

Nynxz/SAPIgw

Repository files navigation

SAPIgw - Simple API Gateway

Built ontop of

  • Express.js
  • PostgreSQL
  • Prometheus -- TODO
  • Grafana -- TODO

Includes

  • Hot Reloading
  • JSON Webtokens
  • API Keys
  • User Credentials
  • Rate Limiting

This currently runs the express server and postgres database in containers, with plans to add prometheus and grafana in the future.

I have written a blog post outlining a similar setup with InfluxDB.

none of this is secure 🤷‍♂️ this is just a fun project for me to learn with, feel free to contact me!

Running

modify compose.yaml with a different password in the Postgres Service and DATABASE_URL of the Gateway Service

docker compose up

will run the gateway and database

https://localhost:4000/api/

create a file in the /src/routes directory similar to the example.ts

import { Request, Response, Router } from "express";
import { registerGET, registerPOST } from "../lib/registerHTTP";

export default (router: Router) => {
  registerGET(router, "/hello/", async (req: Request, res: Response) => {
    res.send("Hello!");
  });

  registerPOST(router, "/hello/", async (req: Request, res: Response) => {
    res.send("Hello!");
  });
};

examples of using the different builtin auth middleware are shown in /src/testing.ts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published