Neste projeto, foram desenvolvidos uma API e um banco de dados para a produção de conteúdo para um blog.
Foi desenvolvida uma aplicação em Node.js usando o pacote sequelize para fazer um CRUD de posts. Os endpoints foram ligados ao banco de dados seguindo os princípios do REST. Para criar posts, o usuario deve estar cadastrado e logad sendo validado por um token gerado atravez do JWT(json web token).
Ver rotas
- POST
/user
para cadastrar novo usuario. Utilize um body nesse formato:
{
"displayName": "Monkey D. Luffy",
"email": "luffy@pirateking.com",
"password": "estoucomfome",
"image": "https://img.assinaja.com/upl/lojas/mundosinfinitos/imagens/foto-one-piece.png"
}
- POST
/login
para fazer login e receber um token. Utilize um body nesse formato:
{
"email": "luffy@pirateking.com",
"password": "estoucomfome"
}
- POST
/post
para criar uma nova postagem. Utilize um body nesse formato:
{
"title": "Serei o rei dos piratas",
"content": "Vou encontrar todos os pegaços",
"categoryIds": [1]
}
- POST
/categories
para adicionar uma nova categoria. Utilize um body nesse formato:
{
"name": "Animation"
}
- GET
/user
traz todos os usuarios.
- GET
/user/:id
traz o usuário de acordo com o id no banco de dados se ele existir.
- GET
/categories
para buscar todas as categorias.
- GET
/post
para trazer todos os blogs post.
- GET
/post/:id
para trazer o blog post baseado no id do banco de dados se ele existir.
- GET
/post/search?q=<conteudo da busca>
retornar um array de post que contenham em seu título ou conteúdo o termo passado na URL. Exemplo de url:
http://localhost:<PORT>/post/search?q=comida
- PUT
/post/:id
para atualizar o poste caso ele exista e pertença ao usuario logado. Utilize um body nesse formato:
{
"title": "Lufeeeee",
"content": "Cade minha comida"
}
- PUT
/sales/:id
para atualizar a venda. Utilize um body nesse formato:
[
{
"productId": 1,
"quantity":2
},
]
- DELETE
/post/:id
deleta um blog post de acordo com o id caso a pessoa seja dona dele.
- DELETE
/user/me
encontra o usuario logado travez do token de validação e o deleta.
Pré-requisitos
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:
É recomendado utilizar algum cliente HTTP, como Postman ou o Insomnia.
Também é bom ter um editor para trabalhar com o código como VSCode
Clone o repositorio
git clone git@github.com:TonyyCruz/blogs_api.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 outro chamadoblogs_api_db
.- 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
- Limpar e popular o banco de dados:
npm run seed
- Iniciar o servidor Node:
npm start
- Iniciar o servidor Node com nodemon:
npm run debug