Code Monkey home page Code Monkey logo

blogs-api's Introduction

Blogs API Project

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.

Utilização

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 dados
  • GET /posts/search: Retorna o post pesquisado através de uma query
  • GET /posts/:id ou /user/:id : Retorna o post com o id especificado na rota
  • POST /posts ou /user: Cria um novo post com os dados enviados no corpo da requisição
  • PUT /posts/:id ou /user/:id : Atualiza o post com o id especificado na rota com os dados enviados no corpo da requisição
  • DELETE /posts/:id ou /user/:id : Exclui o post com o id especificado na rota

Como instalar o Projeto Blogs API

Instalação


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á com 1.26.0 por 1.29.2.
  • ⚠️ Caso opte por utilizar o Docker, TODOS os comandos disponíveis no package.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 comando docker exec citado acima
  • ⚠️ Se você se deparar com o erro abaixo, quer dizer que sua aplicação já esta utilizando a porta 3000, seja com outro processo do Node.js (que você pode parar com o comando killall node) ou algum container! Neste caso você pode parar o container com o comando docker stop <nome-do-container>

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 comando docker-compose up -d --build:
  • Esse serviço irá inicializar um container chamado blogs_api e outro chamado blogs_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 ambiente MYSQL_USER e MYSQL_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 ou npm 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.


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 ou npm run debug


Scripts

  • Criar o banco de dados, migrar e popular as tabelas:
  npm run build

Autor

Referências

Tecnologias / Ferramentas utilizadas

Infos Adicionais

  • Percentual de cumprimento de requisitos (Trybe)- 100%

Preview

blog-api.mp4

blogs-api's People

Contributors

rafael-souza-97 avatar trybe-tech-ops avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.