Code Monkey home page Code Monkey logo

helpper-origins-riott-api's Introduction

Node API Boilerplate

Repositório inicial para os participantes do bootcamp realizarem seus exercícios

ORM

Para manipulação do banco de dados e entidades está sendo utilizada a biblioteca TypeORM:

Documentação: https://typeorm.io/#/

Entidades: https://typeorm.io/#/entities

Manipulação: https://typeorm.io/#/working-with-entity-manager

Uso com MongoDB: https://typeorm.io/#/mongodb

OBS: Conforme o banco de dados utilizado, será necessário instalar o driver correspondente (Getting Started > # Installation > 4. Install a database driver).

Banco de dados - MongoDB

Antes de iniciar o servidor é necessário inserir um usuário válido para acessar o mongo, assim como a base de dados riott-database

Com o docker rodando execute os comandos abaixo:

# conecta no docker
docker exec -it riott-mongo bash

# conecta na base de dados
mongo -u riott_root -p (senha disponível em 'docker-compose > MONGO_INITDB_ROOT_PASSWORD')

# adiciona uma base de dados caso não exista
use riott-database

# adiciona usuário para acesso ao banco
db.createUser({
    user: 'riott_baseapi',
    pwd: '562f71639f6c004e088193f3',
    roles: [ { role: 'readWrite', db: 'baseapi'} ],
    passwordDigestor: 'server'
});

Banco de dados - MySql

Em caso de uso do banco de dados MySql, seguir o passo a passo abaixo.

No arquivo docker-compose.yml inserir:

  1. Uma nova URL de conexão no caminho services: > node: > environment:
- MYSQL_CONNECTION_URL=mysql://riott_root:90e271d9b4ae4a6812e86cee@riott-mysql:3306
  1. Um novo link com o container do mysql no caminho services: > node: > links:
- mysql
  1. Um novo service para o container do mysql no caminho services:
mysql:
    container_name: riott-mysql
    restart: always
    image: mysql:5.7
    volumes:
        - ~/docker/volumes/RIOTT_Mysql:/var/lib/mysql
    environment:
        MYSQL_DATABASE: riott-database
        MYSQL_USER: riott_root
        MYSQL_PASSWORD: 90e271d9b4ae4a6812e86cee
        MYSQL_ROOT_PASSWORD: 327c56a1d1c5803d92a4dad9
    networks:
        - riott-connect
    ports:
        - 3306:3306
  1. Um novo link com o container do mysql no caminho volumes:
riott-mysql-data:

No arquivo src/config/database.ts substituir a definição na exportação das opções de conexão do banco:

// Trocar
...mongoOptions
// Por
...mysqlOptions

Nas entidades src/library/database/entity alterar as colunas primárias de ObjectIdColumn para @PrimaryGeneratedColumn.

Docker

Para iniciar o projeto é necessário ter o docker e o docker-compose instalados.

Docker: https://docs.docker.com/engine/install/

Docker Compose: https://docs.docker.com/compose/install/

Iniciando o servidor

Instale as dependências rodando o comando abaixo na raiz do diretório:

npm install

Na primeira vez que iniciar o projeto é necessário gerar o build do Dockerfile com o comando:

docker-compose up --build

Para rodar o projeto basta executar o comando:

docker-compose up

OBS: Verifique as informações de conexão no arquivo src/config/database

Se tudo estiver ok a api e a documentação deve estar rodando nos endereços:

API: http://localhost:4444

Documentação dos endpoints: http://localhost:4444/swagger

NGROK

Em alguns navegadores, para acessar o swagger ou a documentação do código, será preciso rodar em modo https por meio do ngrok:

ngrok http 4444

helpper-origins-riott-api's People

Contributors

annecaselato avatar matheus-yudi-newrizon avatar rodrigogazevedo avatar erickhelpper avatar helppersi avatar matheusyudi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.