https://github.com/odevthomas/blog-api-fastify
Uma API RESTful para um blog, onde usuários podem criar posts, comentar e curtir.
https://github.com/odevthomas/blog-api-fastify
Last synced: 9 months ago
JSON representation
Uma API RESTful para um blog, onde usuários podem criar posts, comentar e curtir.
- Host: GitHub
- URL: https://github.com/odevthomas/blog-api-fastify
- Owner: odevthomas
- Created: 2025-03-25T17:44:23.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-03-25T17:49:45.000Z (11 months ago)
- Last Synced: 2025-03-25T18:40:14.796Z (11 months ago)
- Language: JavaScript
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📝 API para Blog com Fastify
Uma API RESTful para um blog, onde usuários podem criar posts, comentar e curtir.
Funcionalidades •
Tecnologias •
Como Usar •
Estrutura •
Licença
---
## ⚙️ Funcionalidades
- 📌 **Listar Posts**: Qualquer usuário pode visualizar as postagens.
- 📝 **Criar Post**: Usuário pode criar um post informando **nome** e **título**.
- 💬 **Comentar Post**: Usuário pode comentar em um post informando **nome** e **conteúdo do comentário**.
- 👍 **Dar Like no Post**: Usuário pode curtir um post.
- ❌ **Excluir Post**: Usuário pode deletar um post.
---
## 🚀 Tecnologias
Este projeto utiliza as seguintes tecnologias:
- [Fastify](https://www.fastify.io/) - Framework web para Node.js.
- [PostgreSQL](https://www.postgresql.org/) - Banco de dados relacional.
- [JWT (jsonwebtoken)](https://github.com/auth0/node-jsonwebtoken) - Autenticação baseada em token.
- [Dotenv](https://github.com/motdotla/dotenv) - Gerenciamento de variáveis de ambiente.
- [Pino Pretty](https://github.com/pinojs/pino-pretty) - Logger para Fastify.
- [Request](https://github.com/request/request) - Realizar requisições HTTP.
---
## 🛠️ Como Usar
### 1️⃣ Clonar o repositório
```bash
git clone https://github.com/seu-usuario/seu-repo.git
cd seu-repo
```
### 2️⃣ Criar e configurar o arquivo `.env`
Crie um arquivo `.env` na raiz do projeto e adicione as seguintes variáveis:
```env
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=blogdb
DB_HOST=localhost
PORT=3000
JWT_SECRET=seuSegredoSuperSecreto
```
### 3️⃣ Instalar as dependências
```bash
npm install
```
### 4️⃣ Iniciar o servidor
```bash
npm start
```
A API estará disponível em **http://localhost:3000**.
---
## 📂 Estrutura
```
/src
/controllers
postController.js
commentController.js
/models
Post.js
Comment.js
index.js
/routes
postRoutes.js
commentRoutes.js
/config
database.js
server.js
Dockerfile
docker-compose.yml
package.json
.env
```
---
## 📝 Licença
Este projeto está licenciado sob a **MIT License**. Veja o arquivo [LICENSE](./LICENSE) para mais detalhes.
---
Desenvolvido por odevthomas | Thomas 🚀