Categorygithub.com/gsantosc18/todo
repositorypackage
0.0.7
Repository: https://github.com/gsantosc18/todo.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

ToDo List API em Go

Este projeto é uma aplicação simples de lista de tarefas (ToDo List), implementada usando Go (Golang) com o framework Gin-Gonic. A API permite aos usuários criar, visualizar, atualizar e deletar tarefas. Inclui autenticação JWT para segurança e utiliza PostgreSQL como banco de dados. A documentação da API é feita com Swagger, oferecendo uma interface amigável para interação com a API.

Diagrama

Arquitetura da api todo

Funcionalidades

  • CRUD de tarefas:
    • Criar tarefas
    • Ler tarefas
    • Atualizar tarefas
    • Deletar tarefas
    • Criar tarefa a partir do kafka

Tecnologias Utilizadas

  • Go: Linguagem de programação usada.
  • Gin-Gonic: Framework web utilizado para criar a API.
  • PostgreSQL: Banco de dados.
  • JWT-go: Biblioteca para implementar autenticação JWT.
  • Swag: Ferramenta para gerar a documentação da API com Swagger.
  • Kafka: Ferramenta de mensageria.
  • Keycloak: Ferramenta de gerenciamento de identidade de código aberto.

Pré-requisitos

Antes de iniciar, você precisará ter instalado em sua máquina:

  • Go (1.21.1 ou superior)
  • PostgreSQL
  • Git (opcional, para clonar o repositório)
  • Zookeeper
  • Kafka

Configuração do Banco de Dados

  1. Instale e configure o PostgreSQL em seu ambiente.
  2. Crie um banco de dados chamado todo_list.
  3. Configure as credenciais de acesso ao PostgreSQL no arquivo de configuração da aplicação. Exemplo:
    DB_HOST=localhost
    DB_PORT=5432
    DB_USER=user
    DB_PASSWORD=123
    DB_NAME=aula
    

Configurar o ambiente com docker

Pré requisitos

Antes de iniciar, você precisará ter instalado em sua máquina:

  • Docker
  • Docker Compose

Executando a Aplicação

Para iniciar o serviço utilizando Docker Compose, execute o seguinte comando na pasta docker do projeto:

docker-compose up -d --build

Isso fará com que os containers da aplicação sejam construídos e iniciados. Os servidores estarão disponíveis em:

Instalação

Clone o projeto (ou baixe o zip):

git clone https://github.com/gsantosc18/todo.git
cd todo

Instale as dependências do projeto:

go mod tidy

Executando a aplicação

Para iniciar o servidor, execute:

go run main.go

O servidor estará disponível em http://localhost:8080.

Uso da API

Você pode acessar a documentação da API e testar os endpoints através do Swagger UI em http://localhost:8080/swagger/index.html.

Exemplos de Requests

Criar uma nova tarefa

curl -X POST http://localhost:8080/todo
-H 'Content-Type: application/json' 
-H 'Authorization: Bearer [TOKEN]'
-d '{"title": "Nova Tarefa", "description": "Descrição da tarefa"}'

Obter todas as tarefas

curl -X GET http://localhost:8080/todo