Skip to content

kleytonsolinho/golang-clean-arch

Repository files navigation

GOLang Clean Architecture APP

Este programa em Go é um servidor HTTP/GraphQL e gRPC rodando em Multithreads com Clean Archictecture

Funcionalidades

  • Cadastro de Orders:

    • O servidor permite cadastrar Ordens utilizando HTTP, GraphQL e gRPC.
  • Listagem de Orders:

    • O servidor permite listar todas as Ordens utilizando HTTP, GraphQL e gRPC.

Como Utilizar localmente:

  1. Requisitos:
    • Certifique-se de ter o Go instalado em sua máquina.
    • Certifique-se de ter Evans e gRPC instalado em sua máquina.
    • Certifique-se de ter GraphQL (gqlgen) instalado em sua máquina.
    • Certifique-se de ter o Docker instalado em sua máquina.  
  2. Clonar o Repositório:  
git clone https://github.com/kleytonsolinho/golang-clean-arch.git

  3. Acesse a pasta do app:  

cd golang-clean-arch

  4. Rode o docker para subir o serviço RabbitMQ e MySQL:  

docker-compose up -d
  1. Acesse a pasta cmd/orderssystem e rode o main.go e wire_gen.go:  
cd cmd/ordersystem
go run main.go wire_gen.go

Observação: Ao iniciar a aplicação, o processo de migração é executado automaticamente, não sendo necessário realizá-lo manualmente.

Como testar localmente:

Portas

HTTP server on port :8000
gRPC server on port :50051
GraphQL server on port :8080

HTTP

  • Acesse a pasta api/ e dispare os dois arquivos ** Necessário instalar o plugin REST Client no VSCode. **

GraphQL

 mutation createOrder {
   createOrder (input:{ id: "teste", Price: 110, Tax: 2 }) {
     id
     Price
     Tax
   }
 }


 query queryOrders {
     orders {
         id
         Price
         Tax
         FinalPrice
     }
 }

gRPC

  • Rode o evans:
evans -r repl
package pb
service OrderService

Para listar as orders utilize

call ListOrders

Para criar orders utilize

call CreateOrder

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages