An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# 📝 API para Blog com Fastify


API Blog


Uma API RESTful para um blog, onde usuários podem criar posts, comentar e curtir.


Funcionalidades
Tecnologias
Como Usar
Estrutura
Licença


Fastify
PostgreSQL
Version

---

## ⚙️ 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 🚀