Blogs API é uma API Rest que simula o gerenciamento de conteúdo de um Blog. Os conteúdo são exclusivamente postagens, que são criadas pelos usuários cadastrados e autenticados.
Um usuário recém criado, só poderá criar uma nova postagem ao fazer Login e receber o token de autenticação. Desta forma, ele poderá usufruir também de todos os outros recursos que esta API oferece.
A API foi criada com JavaScript (Node.js), utilizando o framework minimalista Express.js e se conectando ao banco de dados MySQL através do ORM Sequelize.js. Há também a utilização da biblioteca JOI para validação de estrutura de dados recebida na requisição e o JWT para geração do token para autenticação de usuário.
Primeiro faça o clone e navegue até a pasta do projeto:
git clone git@github.com:Adolligit/blogs-api.git && cd blogs-api/
🚨 As versões descritas nas instalações são fortemente recomendadas. No entanto, caso queira tentar em uma versão diferente, considere a possível aparição de erros durante a execução do projeto.
Escolha uma das instalações a seguir:
Instalar com Docker 🐳
RequisitosVocê deve possuir as seguintes ferramentas:
- Docker: v24
- Docker Compose: v2.19
- Crie e inicie os contêiners:
docker compose up -d
- Entre no contêiner da aplicação:
docker exec -it blogs_api bash
Instalar localmente 💻
RequisitosVocê deve possuir as seguintes ferramentas:
- npm: v9.8.0
- Node.js: v20.5
- MySQL: v8
- Renomeie o arquivo .env.example na pasta raiz para .env
mv .env.example .env
- Abra o arquivo .env e então, somente edite os valores da seguintes chaves:
#api ... JWT_SECRET= #db ... MYSQL_USER= MYSQL_PASSWORD=
- Salve o arquivo!
Comando | Descrição |
---|---|
npm install | Instalar as dependências do projeto |
npm run prestart | Criar o banco de dados MySQL e suas tabelas |
npm run seed | Popular o banco de dados |
npm start | Iniciar o projeto |
npm run dev | Inciar o projeto em modo de desenvolvimento (nodemon) |
npm run lint | Executar o ESLint para verificar os erros de código estático |
npm run reset | Recriar o banco de dados já populado |
npm run drop | Deletar o banco de dados |
Deixei uma documentação feita com Swagger UI para facilitar e lhe orientar no uso da API. Você poderá acessa-la clicando aqui.
Gerei este DER para facilitar a visualização da estrutura do banco de dados. Desta forma fica mais fácil saber como esta o relacionamento entre as entidades. Confira:
Descrevo neste tópico alguns possíveis erros que você pode estar enfrentando durante a instalação ou execução desta API.
Uma das opções descritas no erro poderá resolver o problema que você esta enfrentando. Contudo, caso ainda permaneça com dificuldade para testar a API, me envie um e-mail: adelson.onod@gmail.com.
Antes de prosseguir, por favor confirme que:
- Docker 🐳
- Você tem instalado em sua máquina o Docker e o Docker Compose nas versões mínimas exigidas.
- Verificou que a Docker Engine esta funcionando corretamente na sua máquina.
- Localmente 💻
- Você tem instalado em minha máquina o MySQL, Node.js e NPM nas versões mínimas exigidas.
- Verificou que o MySQL esta funcionando corretamente na sua máquina.
Erro ao subir os contêiners: docker compose up -d
Você esta tentando subir os contêiners do Docker porém uma das portas já está em uso. Pode ser o banco de dados ou a API com este erro.
As portas descritas para uso no docker-compose.yml são:
- API: 3000
- Banco: 3307
Para resolver isso, você pode:
- Desativar os programas que estão fazendo uso destas portas; OU
- Alterar o valor para as portas no arquivo docker-compose.yml, em:
- ports (para db e node): as portas da máquina local são descritas no lado esquerdo.
Erro durante a instalação de dependências: npm install
O NPM não encontrou o arquivo 'package.json' na pasta de execução. Você pode ter excluído sem querer ou pode estar executando o comando fora da pasta do projeto.
Para resolver isso, você pode:
- Verificar se esta na pasta do projeto. Se não tiver, basta entrar e executar o comando
npm install
; OU - Baixar o
package-lock.json
e opackage.json
, depois colar na pasta do projeto:
Erro ao tentar popular o banco de dados ou ele não foi reconhecido
Este erro significa que não há o banco de dados 'blogs-api-test' criado.
Para resolver isso você deve:
- Executar o comando
npm run prestart
(acho que você esqueceu disso lá nos comando acima).
E nada disso seria possível se não houvesse a idealização do projeto, portanto, agradeço a @tryber pelo cuidado em trazer um projeto que nos desafia (nos alunos), a colocar em prática todos os nossos conhecimento em programação. Obrigadão mesmo!