Projeto API de Blogs :black_nib:
:round_pushpin: Sobre
:round_pushpin: Tecnologias
:round_pushpin: Decisões
:round_pushpin: Orientações
:round_pushpin: Usabilidade
:round_pushpin: Documentação
Este projeto é uma aplicação em Node.js usando o pacote Sequelize para fazer um CRUD de posts :page_with_curl:
Foi desenvolvida uma API seguindo os princípios do REST e que conecta ao banco de dados postgreSQL.
Para acessar a API, é necessário que a pessoa usuária faça login com suas credencias e isso será autenticado e autorizado via JWT com a geração de token.
A documentação te ajudará a entender o projeto com maior clareza e assertividade :book:
ESLint
- O projeto possui regras estritas de ESLint (Airbnb) para JavaScript onde é possível encontrar e corrigir problemas, seguindo boas práticas e padronização.
Docker
- Utilizar imagens Docker para empacotar toda a aplicação e suas dependências, torna a distribuição mais fácil, segura e padronizada.
Sequelize
- Como uma das bibliotecas de ORM mais conhecidas, o Sequelize foi utilizado nesse projeto pois o código se torna mais legível, extensível e de fácil manutenção.
JWT
- Os JSON Web Tokens representam a autenticação e autorização de forma eficaz e simples.
:information_source: Você encontrará um arquivo example.env onde estarão as variáveis de ambiente utilizadas no projeto, duplique-o e renomeie-o apenas para .env e insira os valores nas variáveis de ambiente conforme sua utilização.
👉 Com Docker
:information_source: Rode os serviços node e db com o comando docker-compose up -d.
-
Lembre-se de parar o postgresql se estiver usando localmente na porta padrão (5432), ou adapte o docker-compose caso queria fazer uso da aplicação em containers;
-
Esses serviços irão inicializar um container chamado blogs_api e outro chamado blogs_api_db;
-
A partir daqui você pode acessar o container blogs_api via CLI ou abri-lo no seu editor;
:information_source: Use o comando docker exec -it blogs_api bash.
- Ele te dará acesso ao terminal interativo do container criado pelo docker-compose, que está rodando em segundo plano.
:information_source: Ao rodar o docker-compose, ele automaticamente irá rodar os seguintes comandos:
-
npm install: Irá instalar todas as dependências;
-
npm start: Irá rodar a aplicação na porta 3000 pelo nodemon, ou adapte o docker-compose e o .env caso sinta necessidade.
👉 Sem Docker
:information_source: Instale as dependências com npm install.
:information_source: Rode a aplicação com npm start na porta 3000 pelo nodemon, ou adapte o .env caso sinta necessidade.
Obs: Veja a seção de documentação para entender melhor como funcionam as rotas.
:information_source: Após rodar a aplicação, você deverá acessar através de http://localhost:{porta}/{rota}
:information_source: Acesse aqui a documentação deste projeto onde constam mais detalhes sobre os relacionamentos e entidades elaborados, arquitetura de software utilizada e as rotas possíveis para consumo.