Skip to content

WellitonCunha/go-rest-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minha API REST em Go

Esta é uma API REST construída em Go. A API fornece várias funcionalidades e utiliza diversas bibliotecas para suportar o roteamento, middleware, conexão com banco de dados e outras utilidades.

Funcionalidades

  • Roteamento com Gorilla Mux
  • Middleware para CORS
  • Conexão com PostgreSQL usando GORM
  • Migrações de banco de dados
  • Tratamento de erros e respostas JSON

Dependências

A API REST foi construída utilizando as seguintes bibliotecas:

Essas bibliotecas foram utilizadas para fornecer funcionalidades como roteamento, manipulação de middleware, suporte a PostgreSQL e outras utilidades necessárias para a construção da API.

Pré-requisitos

  • Go 1.18+
  • PostgreSQL
  • Docker e Docker Compose

Configuração

  1. Clone o repositório:

    git clone https://github.com/WellitonCunha/go-rest-api.git
    cd go-rest-api
    
  2. Instale as dependências: go mod download

  3. Para rodar a aplicação localmente, use: go run main.go

A API estará disponível em http://localhost:8000.

Observações pessoais

  1. Passo: docker-compose exec postgres sh hostname -i resultado: 172.18.0.2 comando para visualizar o ip local no docker
  2. Passo: docker inpect 461 | grep IPAddress #bibliotecas utilizadas
  3. gorilla mux - para rotas
  4. gorm orm - manipulação de banco de dados #atualizar o gorm orm comando: go get -u gorm.io/gorm #drive do postgres comando: go get gorm.io/driver/postgres #comando para parar todos os containers docker stop $(docker ps -q) #tive um problema ao expor a porta 5432 do postgres que fica exposta ##para fora onde já estava sendo usado então refinir outra porta 5485 Instalação do github.com/gorilla/handlers #biblioteca para facilitar a implementação de política de CORS

About

Sistema completo de api rest com go

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages