Nessa projeto foi realizada a construção de uma API rest, que permiti fazer o CRUD de usuários, posts e categorias (relacionadas aos posts). Para o armazenamento das informações foi usado um container docker do mysql, e para salvar as informações nesse banco foi utilizado o sequelize, outro recurso utilizado foi o JWT (json web token) para identificar o usuário que está fazendo as operações para que assim somente quem deve ter acesso aquela operação possa realiza-lá , toda a aplicação foi estruturada no modelo MSC.
Rodando com Docker 🐳
Rode os serviços node e db com o comando docker-compose up -d --build
.
Lembre-se de parar o mysql se estiver usando localmente na porta padrão (3306), ou adapte, 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 rodar o container blogs_api via CLI ou abri-lo no VS Code;
Use o comando docker exec -it blogs_api bash
.
Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.
information_source Instale as dependências [Caso existam] com npm install
. (Instale dentro do container)
Tecnologias Utilizadas e Funcionalidades 💻
Funcionalidades
- Fazer login com a rota: /login (POST)
- Criar um usuário com a rota: /user (POST)
- Buscar usuários com a rota: /user (GET)
- Buscar usuário pelo id com a rota: /user/:id (GET)
- Criar uma categoria com a rota: /categories (POST)
- Buscar as categorias com a rota: /categories (GET)
- Criar um post com a rota: /post (POST)
- Buscar os posts com a rota: /post (GET)
- Buscar um post com a rota: /post/:id (GET)
- Atualizar um post com a rota: /post/:id (PUT)
- Deletar um post com a rota: /post/:id (DELETE)
- Deletar o usuario logado com a rota: /user/me (DELETE)
- Buscar um post por uma palavra chave com a rota: /post/search?q=:searchTerm (GET)
Tecnologias ultizadas
- Javascript
- Express
- Sequelize
- Json web token (JWT)
- Docker