Skip to content

Falchizao/crud-golang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api desenvolvida para a disciplina de web avançada

Api-Rest de uma aplicação CRUD em GO. Persistência de dados realizada no PostgreSQL.

Go é uma linguagem de programação criada pela Google e lançada em código livre em novembro de 2009. É uma linguagem compilada e focada em produtividade e programação concorrente.

Vantagens da golang:

  • Fácil de entender.
  • Alta performance
  • Segura
  • Garbage collector nativo
  • Concorrência
  • Utilização de ponteiros para alocação dinâmica de memória
  • Flexibilidate para estruturas complexas por conta de ponteiros
  • Referência para funções

Desvantagem:

  • Constante validação de dados

  • Não possui overload de construtores

  • Dificuldades que eu tive:

  • Problemas com ponteiros e validação de erros

Para estruturar o projeto, deve-se iniciar o go.mod e go.sum.

  • go.mod: cria o modulo para exportar o projeto como package, apontando para a versão do go.

  • go.sum: lista os packages dependencies do projeto

No arquivo .env se encontra algumas variáveis constantes para gerenciamento do projeto, adicionando ele no .gitignore, não será enviada suas configurações privadas do projeto.

  • Utilizado o fiber para handle das rotas da aplicação, que é a engine mais rápida para http em go, baseado no nodejs, é possivel subir um servidor rapidamente

  • Utilizado o gorm como ORM para mapeamento das entidades

  • Utilizado o godotenv para busca das configurações em arquivos locais

  • Na arquivo main, as routes foram criadas e realizado um bind ao respectivo controller ex: api := app.Group("/api") api.Post("/createUser", r.CreateUser) api.Delete("/deleteUser/:id", r.DeleteUser) api.Get("/get_user/:id", r.GetUserByID) api.Get("/users", r.GetUsers) api.Put("/update_user/:id", r.UpdateUser)

  • No arquivo main é necessário instanciar um router gin e iniciar nossas rotas, assim ao inicializar o projeto, já é possível visualizar os endpoints

  • É necessário bindar uma porta livre para o fiber, caso contrário, a aplicação não será inicializada

About

crud with fiber and gorm.io

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages