Neste projeto foi desenvolvido uma API e um banco de dados para a produção de conteúdo para um blog usando Node.js com pacote sequelize para fazer um CRUD de posts.
Os endpoints estão conectados ao banco de dados seguindo os princípios básicos do REST.
O usuário deve fazer login, trabalhando assim a relação entre user e post.
Além disso, é necessária a utilização de categorias de posts, trabalhando assim a relação de posts para categories e de categories para posts.
🐋 Rodando no Docker vs Localmente
1.26.0 por 1.29.2.
ℹ️ Rode os serviços
nodeedbcom o comandodocker-compose up -d --build.
-
Lembre-se de parar o
mysqlse 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_apie outro chamadoblogs_api_db; -
A partir daqui você pode rodar o container
blogs_apivia 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 execcitado acima. -
⚠️ Atenção: O git dentro do container não vem configurado com suas credenciais. Ou faça os commits fora do container, ou configure as suas credenciais do git dentro do container. -
⚠️ Atenção: Não rode o comando npm audit fix! Ele atualiza várias dependências do projeto, e essa atualização gera conflitos com o avaliador.
ℹ️ 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 -
⚠️ Atenção: Não rode o comandonpm audit fix! Ele atualiza várias dependências do projeto, e essa atualização gera conflitos com o avaliador. -
✨ Dica: Para rodar o projeto desta forma, obrigatoriamente você deve ter o
nodeinstalado em seu computador. -
✨ Dica: O avaliador espera que a versão do
nodeutilizada seja a 16.
🔧 Instalação
- Clone o repositório
git clone [email protected]:Wesleyhmendes/blogs-api-back-end.git.- Entre na pasta do repositório que você acabou de clonar:
blogs-api-back-end.git
- Instale as dependências [Caso existam]
npm install
- Crie uma branch a partir da branch
master
- Verifique que você está na branch
master- Exemplo:
git branch
- Exemplo:
- Se não estiver, mude para a branch
master- Exemplo:
git checkout master
- Exemplo:
- Agora crie uma branch com o nome desejado
📋 Requisitos
1 - Crie migrations para as tabelas users, categories, blog_posts, posts_categories
2 - Crie o modelo User em src/models/User.js com as propriedades corretas
3 - Sua aplicação deve ter o endpoint POST /login
4 - Sua aplicação deve ter o endpoint POST /user
5 - Sua aplicação deve ter o endpoint GET /user
6 - Sua aplicação deve ter o endpoint GET /user/:id
7 - Crie o modelo Category em src/models/Category.js com as propriedades corretas
8 - Sua aplicação deve ter o endpoint POST /categories
9 - Sua aplicação deve ter o endpoint GET /categories
10 - Crie o modelo BlogPost em src/models/BlogPost.js com as propriedades e associações corretas
11 - Crie o modelo PostCategory em src/models/PostCategory.js com as propriedades e associações corretas
12 - Sua aplicação deve ter o endpoint POST /post
13 - Sua aplicação deve ter o endpoint GET /post
14 - Sua aplicação deve ter o endpoint GET /post/:id
15 - Sua aplicação deve ter o endpoint PUT /post/:id
16 - Sua aplicação deve ter o endpoint DELETE /post/:id
17 - Sua aplicação deve ter o endpoint DELETE /user/me
18 - Sua aplicação deve ter o endpoint GET /post/search?q=:searchTerm
Mencione as ferramentas que você usou para criar seu projeto
Nós usamos Docker para controle de versão.
- Wesley Mendes - Trabalho Inicial - Wesley Mendes