REST API de Blog com rotas para cadastro e login de usuários e criações e interações com posts feita com JavaScript utilizando o runtime NodeJS com o framework Express e TypeScript, protegendo rotas com JWT, autenticando dados de entrada com a biblioteca Joi, criando models, migrations e armazenando os dados no banco de dados PostgreSQL com o ORM Prisma.
Testes unitários e de integração feitos com framework de testes Jest e SuperTest.
Ambientes de produção e desenvolvimento criados em containers Docker utilizando Dockerfile para multi-stage building e Docker Compose para orquestração de containers.
- NodeJS
- Docker
- Docker Compose
FAÇA O DOWNLOAD DOS ARQUIVOS OU USE SSH:git pull git@github.com:joaov1ct0r/nodejs-prisma-restAPI-blog.git
ABRA O ARQUIVO .env E ALTERE AS VARIAVEIS DE AMBIENTE COM SEUS DADOS(USE .env.example COMO EXEMPLO)
- SERVER_HOST = HOST DO SEU SERVER
- SERVER_PORT = PORTA QUE VOCÊ QUEIRA RODAR O SERVIDOR
- DB_HOST = ROTA PARA SEU BANCO DE DADOS
- DB_USER = SEU USUARIO DO BANCO DE DADOS
- DB_PASSWORD = SENHA DO SEU BANCO DE DADOS
- DB_DATABASE = NOME DO SEU BANCO DE DADOS
- DB_DATABASE_TEST = NOME DO SEU BANCO DE DADOS DE TESTE
- DB_PORT = PORTA DO SEU BANCO DE DADOS
- JWT_TOKEN_SECRET = SEU JWT TOKEN SECRET
- NODE_ENV = AMBIENTE DO SEU NODE
APOS TER OS ARQUIVOS EM SUA MAQUINA ESCOLHA O MODO EM QUE QUER RODAR O PROJETO:
PRODUÇÃO:
DIGITE EM SEU TERMINAL: sudo docker compose up --build -d
DESENVOLVIMENTO:
DIGITE EM SEU TERMINAL: sudo docker compose up -f docker-compose.dev.yaml --build -d
APOS INICIAR O PROJETO EM SEU MODO PREFERIDO VA PARA A ROTA:http://localhost:3000/api/docs
PARA VER AS ROTAS DISPONIVEIS PARA FAZER AS REQUISIÇÕES