Esse projeto se trata de uma API e um banco de dados para a produção de conteúdo para um blog. Onde foi aplicado conceitos de Arquitetura de Software, ORM e Autorização e autenticação utilizando o modelo Model Service Controler, Sequelize e JWebToken. Nessa API temos todo o fluxo de login e Cadastro junto com um CRUD (create Read Update e Delete) para as postagens. Além disso, Foi utilizado nesse projeto o Docker Compose.
- desenvolvi uma API RESTful e um banco de dados SQL para produzir conteúdo para um blog;
- desenvolvi uma aplicação em Node.js utilizando o pacote sequelize para fazer um CRUD dos posts:
- Para fazer um post, precisa de um usuário e um login, logo, foi trabalhado a relação entre usuário e post, e usei o JWT para autentivcação de usuário;
🐋 Rodando no Docker vs Localmente
1.26.0
por 1.29.2
.
ℹ️ Rode os serviços
node
edb
com o comandodocker-compose up -d --build
.
-
Lembre-se de parar o
mysql
se estiver usando localmente na porta padrão (3306
), ou adapte, caso queria fazer uso da aplicação em containers; -
Esses serviços irão inicializar um container chamado
blogs_api
e outro chamadoblogs_api_db
; -
A partir daqui você pode rodar o container
blogs_api
via CLI ou abri-lo no VS Code;
ℹ️ Use o comando
docker exec -it blogs_api bash
.
- Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.
ℹ️ Instale as dependências [Caso existam] com
npm install
. (Instale dentro do container)
-
⚠️ Atenção: Caso opte por utilizar o Docker, TODOS os comandos disponíveis nopackage.json
(npm start, npm test, npm run dev, ...) devem ser executados DENTRO do container, ou seja, no terminal que aparece após a execução do comandodocker exec
citado acima. -
✨ Dica: A extensão
Remote - Containers
(que estará na seção de extensões recomendadas do VS Code) é indicada para que você possa desenvolver sua aplicação no container Docker direto no VS Code, como você faz com seus arquivos locais.
ℹ️ Instale as dependências [Caso existam] com
npm install
-
Lembre-se de usar o prefixo
env $(cat .env)
ao rodar os comandos localmente para carregar as variáveis de ambiente do arquivo.env
. Por exemplo:env $(cat .env) npm run dev
- ✨ Dica: Para rodar o projeto desta forma, obrigatoriamente você deve ter o
node
instalado em seu computador.
- ✨ Dica: Para rodar o projeto desta forma, obrigatoriamente você deve ter o
- Docker;
- JavaScript;
- Node.js;
- Express;
- MySql;
- Sequelize;
- JWT.
Criei a pasta src e todo conteúdo dentro dela. Os outros arquivos foram feitos pela Trybe.