/api-gateway-express

Implementação para fins de estudo de um gateway em express

Primary LanguageTypeScript

API Gateway

API Gateway Express

GitHub language count Repository size Made by Lucas Eduardo GitHub last commit License Stargazers

ℹ️ O que é API Gateway?

Segundo o site RedHat, "o gateway de API é uma ferramenta de gerenciamento de APIs que fica entre o cliente e uma coleção de serviços de back-end.

Ele funciona como um proxy inverso, que aceita todas as chamadas da interface de programação de aplicações (API), agrega os vários serviços necessários para realizá-las e retorna o resultado apropriado.

A maioria das APIs corporativas é implantada por meio de gateways de API. Esses gateways normalmente gerenciam tarefas comuns que são usadas em um sistema de serviços de API, como autenticação de usuários, limitação de taxa e estatísticas".

💻 Sobre o projeto

Esse projeto para estudo surgiu apenas para testar uma criação de um gateway utilizando o express, para ter mais liberdade em tudo o que ocorre na aplicação e como foi desenvolvido.

🛠 Tecnologias

As principais ferramentas utilizadas:

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js e Yarn. Além disto é bom ter um editor para trabalhar com o código como VSCode

Configuração Yml

Crie um arquivo na raiz chamado config.yml e passe as configurações desejadas.

nameApplication: API Gateway
hostApplication: http://localhost

config:
  port: 3333
  enabledMorgan: true

security:
  enabledJSON: true
  enabledHelmet: true

services:
  - nameRoute: users
    url: http://localhost:3001
  - nameRoute: products
    url: http://localhost:3002

🎲 Rodando a aplicação

# Clone este repositório
$ git clone https://github.com/lucas-eduardo/api-gateway-express

# Acesse a pasta do projeto no terminal/cmd
$ cd api-gateway-express

# Instale as dependências
$ yarn install

# Configure o arquivo config.yml conforme o exemplo.

# Execute a aplicação em modo de desenvolvimento
$ yarn dev

# O servidor inciará na porta:3333 - acesse http://localhost:3333