Skip to content

Instantly share code, notes, and snippets.

@rodrigorodriguescosta
Created October 31, 2023 19:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rodrigorodriguescosta/e9ab566bc446085c1119a7ee831397b4 to your computer and use it in GitHub Desktop.
Save rodrigorodriguescosta/e9ab566bc446085c1119a7ee831397b4 to your computer and use it in GitHub Desktop.
use example for go API framework
package main
import (
"comps/app"
appversion "comps/apps/app"
"comps/apps/auth"
"comps/apps/config"
"comps/apps/dfe/cce"
"comps/apps/dfe/cfop"
"comps/apps/dfe/inutilizacao"
"comps/apps/dfe/mdfe"
"comps/apps/dfe/ncm"
"comps/apps/dfe/nfe"
"comps/apps/dfe/tributacao"
"comps/apps/endereco"
"comps/apps/estoque/ajusteestoque"
"comps/apps/estoque/categoria"
"comps/apps/estoque/entradaavulsa"
"comps/apps/estoque/fabricante"
"comps/apps/estoque/inventario"
"comps/apps/estoque/produto"
"comps/apps/etiqueta"
"comps/apps/filemanager"
"comps/apps/financeiro/caixa/caixa"
"comps/apps/financeiro/caixa/fechamentocaixa"
"comps/apps/financeiro/caixa/movimentocaixa"
"comps/apps/financeiro/cartacredito"
"comps/apps/financeiro/centrocusto"
"comps/apps/financeiro/contas"
"comps/apps/financeiro/planoconta"
"comps/apps/financeiro/recibo"
"comps/apps/fiscal/spedfiscal"
"comps/apps/grupopessoa"
"comps/apps/grupousuario"
"comps/apps/importacao"
"comps/apps/person"
"comps/apps/posto/bico"
"comps/apps/posto/bomba"
"comps/apps/report"
"comps/apps/servico"
"comps/apps/suporte/departamento"
"comps/apps/suporte/ticket"
"comps/apps/vendas/desconto"
"comps/apps/vendas/devolucao"
"comps/apps/vendas/formapagamento"
"comps/apps/vendas/ordemservico/marca"
"comps/apps/vendas/ordemservico/tipoobjeto"
"comps/apps/vendas/otica/oticatipos"
"comps/apps/vendas/pedido"
sorteio "comps/apps/vendas/sorteios"
fiber2 "github.com/gofiber/fiber/v2"
"github.com/linksoft-dev/single/comps/go/api"
"github.com/linksoft-dev/single/comps/go/api/adapters/grpc"
"github.com/linksoft-dev/single/comps/go/api/adapters/rest"
"github.com/linksoft-dev/single/comps/go/api/adapters/rest/fiber"
"sigeflex/apps/licenca"
)
func main() {
type allApps interface {
grpc.AppI
rest.AppInterface
}
// seta os parametros iniciais da aplicacao
// TODO depois fazer uma analise se é interessante a cada main de aplicacao, carregar
// parametros especificos da aplicacao baseado em um pacote
app.ApplicationName = "sigeflex"
app.LoadAppConfig()
app.ConnectDatabase()
apps := []allApps{
// geral
appversion.App,
person.App,
grupopessoa.App,
auth.App,
grupousuario.App,
filemanager.App,
config.App,
endereco.App,
ticket.App,
departamento.App,
importacao.App,
licenca.App,
report.App,
//
////nfe
nfe.App,
mdfe.App,
ncm.App,
cfop.App,
cce.App,
tributacao.App,
inutilizacao.App,
//
//// fiscal
spedfiscal.App,
//
//// vendas
pedido.App,
servico.App,
desconto.App,
formapagamento.App,
marca.App,
tipoobjeto.App,
oticatipos.App,
sorteio.App,
devolucao.App,
//
//// posto
bico.App,
bomba.App,
//
//// estoque
etiqueta.App,
produto.App,
categoria.App,
fabricante.App,
inventario.App,
entradaavulsa.App,
ajusteestoque.App,
// financeiro
centrocusto.App,
planoconta.App,
contas.App,
movimentocaixa.App,
fechamentocaixa.App,
cartacredito.App,
recibo.App,
caixa.App,
}
fiberServer := fiber.New(app.AppConfig.ApiPort, "/api", fiber2.Config{
BodyLimit: 40 * 1024 * 1024, // 40 mb de limite na resposta
})
grpcServer := grpc.New(app.AppConfig.GrpcPort)
for _, app := range apps {
fiberServer.AddApp(app)
grpcServer.Add(app)
}
api.AddAdapter(fiberServer)
api.AddAdapter(grpcServer)
api.Start(app.ApplicationName)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment