A Trybe é uma escola de tecnologia focada na formação de Desenvolvedores Web e o projeto API de Blogs foi proposto como uma atividade para aprimorar os estudos sobre desenvolvimento back-end.
O aplicativo é uma API e um banco de dados com o conteúdo de um blog. Deve permitir criar, ler, atualizar e remover informações do blog do banco de dados. Ele também realiza autenticação para conceder permissões aos usuários.
Na elaboração da API RESTful foi utilizada a arquitetura Model-Service-Controller(MSC) . As demais tecnologias e ferramentas foram:
Para executar o aplicativo, inicie com o clone do repositório usando o comando abaixo.
git clone git@github.com:tomasavelino0/blogs-api.git
Navegue até a raiz do projeto
cd blogs-api/
Executando localmente
Obs: Para rodar a aplicação desta forma você deve ter o [ Node ](https://nodejs.org/en/) instalado em sua máquina.
Na raiz do projeto execute o comando abaixo para instalar as dependências.
npm install
Faça login no banco de dados usando suas credenciais.
mysql -u <seu-nome de usuário> -p
Execute os comandos para criar o banco de dados BlogsApi
npm prestart
Inicie o aplicativo com nodemon usando o comando abaixo.
npm debug
Executando com o Docker
Obs: Para executar o aplicativo desta forma você deve ter o Docker instalado em sua máquina.
Na raiz do projeto, carregue os contêineres blogs_api e blogs_api_db usando docker-compose.
docker-compose up -d
Abra o terminal de contêiner blogs_api.
docker exec -it blogs_api bash
Uma vez no terminal do contêiner, execute o comando abaixo para instalar as dependências.
npm install
Para se conectar ao banco de dados, abra o terminal de contêiner blogs_api_db.
docker exec -it blogs_api_db bash
Faça login no banco de dados usando as credenciais descritas em docker-compose.yaml.
mysql -r raiz -p
Para criar o banco de dados, execute o comando abaixo no terminal do container store_manager.
npm prestart
Para iniciar o servidor com nodemon use o comando abaixo no terminal do container store_manager.
npm exec debug
Você pode verificar todas as rotas acessando o endpoint /docs em seu navegador ao executar o aplicativo.
Desenvolvido por Tomas Avelino, © 2022.