项目作者: mat-furla

项目描述 :
💤 Rest API NodeJS para MySQL utilizando TypeScript, TypeORM, express. JWT, bcrypt e Docker
高级语言: TypeScript
项目地址: git://github.com/mat-furla/rest-api-typeorm-mysql.git
创建时间: 2020-11-01T23:26:31Z
项目社区:https://github.com/mat-furla/rest-api-typeorm-mysql

开源协议:

下载


Rest API

A API foi desenvolvida com TypeScript e NodeJS, utilizando algumas tecnologias, incluindo:

  • TypeORM
  • class-validator
  • express
  • helmet
  • JWT
  • bcrypt
  • Docker

Sumário

Variáveis de Ambiente

Antes da execução da API é necessário incluir um arquivo .env na raiz do diretório, um exemplo .env.sample foi incluído e deve ser usado como base.

MySQL

Também é necessário modificar o arquivo orm.config.json com as credenciais do banco de dados instalado:

  1. {
  2. ...
  3. "type": "mysql",
  4. "host": "localhost",
  5. "port": 3306,
  6. "username": "USERNAME",
  7. "password": "PASSWORD",
  8. "database": "DATABASE_NAME",
  9. ...
  10. }

Instalação

Primeiramente na raiz do repositório instale as dependências do NodeJS com o comando:

  1. >> npm install

Migrations

  1. >> npm run typeorm:migration

Execução em Desenvolvimento: ts-node-dev

Para iniciar a API em modo de desenvolvimento, execute:

  1. >> npm run dev

Execução em Produção: Docker

Para a execução em modo de produção um container docker pode ser criado, para tal na raiz do repositório execute:

  1. >> docker-compose up --build

Após o comando algumas imagens serão baixadas e os containers serão construídos e executados.
Foram inclusas as imagens do mysql:5.7 e phpmyadmin, que podem ser retiradas com a edição do arquivo docker-compose.yml conforme desejado.

Raspberry Pi

Para a execução no Raspberry Pi é necessário instalar os pacotes do docker, para tal execute:

  1. >> sudo apt-get install docker docker-compose

No diretório desejado clone o repositório:

  1. >> git clone https://github.com/Asimovjr/chaveiro-smart-rest-api.git

Troque para branch feature/raspberry-pi:

  1. >> git checkout feature/raspberry-pi

Crie os containers docker:

  1. >> docker-compose up --build

Entre no container:

  1. >> docker exec -it chaveiro-smart-rest-api_api_1 /bin/sh

Execute as migrations:

  1. >> npm run typeorm:migration

Entidades



Rotas

Autenticação

post-login

  1. {
  2. "username": "user",
  3. "password": "password"
  4. }

post-register

  1. {
  2. "username": "user",
  3. "password": "password"
  4. }

post-change_password

  1. {
  2. "username": "username",
  3. "oldPassword": "password",
  4. "newPassword": "newPassword"
  5. }

Usuários

get-user

get-id-user

patch-user

  1. {
  2. "username": "new-username"
  3. }

delete-user

Funcionários

get-employee

get-id-employee

post-employee

  1. {
  2. "name": "name",
  3. "sector": "sector"
  4. }

patch-employee

  1. {
  2. "name": "new-name",
  3. "sector": "new-sector"
  4. }

delete-employee

Motor

get-id-engine

post-engine

patch-engine

  1. {
  2. "position": 0
  3. }

Chaves

get-key

get-id-key

post-key

  1. {
  2. "id": 1,
  3. "available": true
  4. }

patch-key

  1. {
  2. "available": false
  3. }

delete-key

Requisições

get-requisition

get-id-requisition

post-requisition

  1. {
  2. "id_key": 1,
  3. "employee": {
  4. "id": "b081c0c1-42d2-4812-b704-974b4949d5b2"
  5. },
  6. "action": true
  7. }

patch-requisition

delete-requisition