Este repositório foi criado para facilitar o desenvolvimento de aplicações microservico REST, trazendo uma estrutura base para desenvolvimento com base em design patterns e estruturas de código bem estruturadas na área de programação. Seu principal intuito foi criar uma estrutura backend para ser utilizada junto com ferramentas SPA como Vue, React, Angular, etc, porem sua aplicação tambem pode servir para criação de somente API REST.
- Gorm (Banco de Dados)
- Gin (HTTP Router)
- Ozzo Validation (Validação de campos)
- Viper (Auxiliar de Configuração via Flags, Variaveis de Ambiente e Arquivos)
- Configor (Leitor de arquivos YAML, JSON, etc)
- Gin JWT (Middleware para validação com JWT)
- Gin Contrib - Cors (Middleware para liberação de CORS)
- Gin Contrib - Gzip (Middleware para Gzip)
- Gin Contrib - Location (Middleware para pegar URL do projeto)
Bibliotecas que não foram adicionadas ao projeto porem podem ser utilizadas para auxiliar casos especificos:
Lista dos projetos onde certas partes de código foram copiadas ou retiradas ideias para contrução da estrutura:
/app: configurações de nivel de aplicação.
/config: arquivos .yaml com configuração de nivel de aplicação.
/daos: objetos DAO contendo os metodos CRUD.
/db: conexão com o banco de dados com base nas configurações de nivel de aplicação.
/handlers: entrypoints REST da aplicação.
/helper: funções auxiliares da aplicação.
/middleware: middlewares (funções) customizados para adicionar aos entrypoints dos handlers.
/models: structs dos objetos do banco.
/route: criação das rotas e middlewares default com chamada da funções de criação de rotas.
/services: logica de negócio.
/vendor: dependências do projeto.