Aplicação realizada enquanto aluno da Trybe para reforçar os conhecimentos sobre Node.js conectado à um banco de dados MySQL com Sequelize através de uma API RESTful.
O projeto consiste em desenvolver o back-end de blog onde é possível procurar, criar, visualizar e deletar usuários e posts no blog. A aplicação utiliza uma API RESTful com arquitetura MSC (Model-Service-Controller), que é um modelo de arquitetura de software baseado em camadas:
Model
: Esta camada é responsável por abrigar todo o código que pode acessar os dados no banco de dados ou no sistema de arquivos. Ela está sendo utilizada com o pacote Sequelize.Service
: Esta camada é responsável por validar as regras de negócio da aplicação.Controller
: Essa camada é responsável por validar os valores recebidos de uma aplicação cliente.
A aplicação possui as seguintes rotas para realizar as operações de CRUD de posts:
GET
/posts ou /user: Retorna a lista de todos os posts existentes no banco de dadosGET
/posts/search: Retorna o post pesquisado através de uma queryGET
/posts/:id ou /user/:id : Retorna o post com o id especificado na rotaPOST
/posts ou /user: Cria um novo post com os dados enviados no corpo da requisiçãoPUT
/posts/:id ou /user/:id : Atualiza o post com o id especificado na rota com os dados enviados no corpo da requisiçãoDELETE
/posts/:id ou /user/:id : Exclui o post com o id especificado na rota
Como instalar o Projeto Blogs API
Rodando a aplicação via Docker
⚠️ Antes de começar, seu docker-compose precisa estar na versão 1.29 ou superior. Veja aqui ou na documentação como instalá-lo. No primeiro artigo, você pode substituir onde está com1.26.0
por1.29.2
.
⚠️ Caso opte por utilizar o Docker, TODOS os comandos disponíveis nopackage.json
(npm start, npm test, npm run debug, ...) devem ser executados DENTRO do container, ou seja, no terminal que aparece após a execução do comandodocker exec
citado acima
⚠️ Se você se deparar com o erro abaixo, quer dizer que sua aplicação já esta utilizando aporta 3000
, seja com outro processo do Node.js (que você pode parar com o comandokillall node
) ou algum container! Neste caso você pode parar o container com o comandodocker stop <nome-do-container>
- Clone o repositório
[email protected]:Rafael-Souza-97/blogs-api.git
:
git clone [email protected]:Rafael-Souza-97/blogs-api.git
- Entre na pasta do repositório que você acabou de clonar:
cd blogs-api
- Rode o serviço
node
com o comandodocker-compose up -d --build
:
- Esse serviço irá inicializar um container chamado
blogs_api
e outro chamadoblogs_api_db
.- A partir daqui você pode rodar o container via CLI ou abri-lo no VS Code.
docker-compose up -d --build
- Use o comando
docker exec -it store_manager bash
:
- Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.
- As credencias de acesso ao banco de dados estão definidas no arquivo
docker-compose.yml
, e são acessíveis no container através das variáveis de ambienteMYSQL_USER
eMYSQL_PASSWORD
.
docker exec -it blogs_api bash
- Instale as depëndencias, caso necessário, com
npm install
(dentro do bash do container):
npm install
Execute a aplicação com
npm start
ounpm run debug
Rodando a aplicação SEM Docker
⚠️ Para rodar a aplicação desta forma, obrigatoriamente você deve ter o Node instalado em seu computador.
- Clone o repositório
[email protected]:Rafael-Souza-97/blogs-api.git
:
git clone [email protected]:Rafael-Souza-97/blogs-api.git
- Entre na pasta do repositório que você acabou de clonar:
cd blogs-api
Execute a aplicação com
npm start
ounpm run debug
- Criar o banco de dados, migrar e popular as tabelas:
npm run build
- API REST
- Express
- Node
- MySQL
- MySQL Workbench
- Sequelize
- Docker
- Javascript
- Zoom
- Slack
- VsCode
- Git & GitHub
- Linux - Ubuntu
-
Percentual de cumprimento de requisitos (Trybe)- 100%