Uma API e um banco de dados para a produção de conteúdo para um blog!
Desenvolvida durante o curso da Trybe esta API RESTful é para a produção de conteúdo para um blog em que é possível criar, visualizar, atualizar e deletar posts, seguindo a arquitetura MSC e foi utilizado um banco de dados MySQL, para realizar as requisições é necessario estar autenticado com um token JWT. A API foi desenvolvida dentro de containers docker utilizando um container Node.js e um container MySQL
-
Veja o arquivo package.json
- Todos os endpoints com metodos e corpo da requisição listados abaixo obrigatoriamente necessitam do corpo da requisição no formato do exemplo.
Corpo da requisição dos endpoints
/login
{
"email": "lewishamilton@gmail.com",
"password": "123456"
}
/user
{
"displayName": "Brett Wiltshire",
"email": "brett@email.com",
"password": "123456",
"image": "http://4.bp.blogspot.com/_YA50adQ-7vQ/S1gfR_6ufpI/AAAAAAAAAAk/1ErJGgRWZDg/S45/brett.png"
}
Pré-requisitos
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js.
É recomendado utilizar algum cliente HTTP, como Postman ou o Insomnia.
Além disto é bom ter um editor para trabalhar com o código como VSCode
1- Clonar o repositorio
git@github.com:andremarquezz/Projeto-BlogsAPI.git
🐳 Rodando no Docker
Rode o serviço node
com o comando
docker-compose up -d
- Esse serviço irá inicializar dois containers chamados
blogs_api e blogs_api_db
, respectivamente.- A partir daqui você pode rodar o container via CLI ou abri-lo no VS Code.
Via CLI use o comando
docker exec -it blogs_api bash
- Ele te dará acesso ao terminal interativo do container blogs_api(node) criado pelo compose, que está rodando em segundo plano.
Instale as dependências dentro do container
com
npm install
💻 Rodando Localmente
Instale as dependências com o comando
npm install
- Para rodar o projeto desta forma, obrigatoriamente você deve ter o
node
instalado em seu computador.- Recomenda-se a versão
^16
- Recomenda-se a versão
Scripts
- Criar o banco de dados e gerar as tabelas:
npm run prestart
- Popular o o banco de dados:
npm run seed
- Dropar o banco de dados:
npm run drop
- Iniciar o servidor Node:
npm start
- Iniciar o servidor Node com nodemon:
npm run dev
- Rodar os testes:
npm test
- Rodar coverage para ver a cobertura dos testes:
npm run test:coverage