What things you need to setup the application:
- Air (not working yet)
- Docker
- Golang
- Go Migrate
- Makefile
- MySQL
.
└── api
| └── embed.go
├── cmd
| ├── server
| │ └── main.go
| └── root.go
├── common
| ├── orm.go
| ├── transform.go
| └── validator.go
├── config
| └── config.go
├── db
| └── migration
| └── {domain_dir}
| └── *.sql
├── domain
| └── {api_version_dir}
| └── {domain_dir}
| ├── internal
| │ ├── entity
| │ │ └── *.go
| │ ├── handler
| │ │ └── *.go
| │ ├── repository
| │ │ └── *.go
| │ └── validator
| │ └── *.go
| ├── usecase
| │ └── *.go
| └── {domain}.go
├── interceptors
| ├── rpc_client_interceptors.go
| │
| └── rpc_server_interceptors.go
├── internal
| └── gateway
| └── *.go
├── middleware
| └── *go
├── pkg
| ├── orm
| │ └── *.go
| ├── rcpclient
| │ └── *.go
| └── rcpserver
| └── *.go
├── proto
| └── {domain_dir}
| └── {api_version_dir}
| └── *.proto
├── scripts
| └── *.sh
├── stubs
| └── {domain_dir}
| └── {api_version_dir}
| └── *.pb.go
├── thid_party
| ├── proto
| └── swagger-ui
| └── embed.go
├── .air.toml
├── .env.example
├── .gitignore
├── .golangci.yml
├── Dockerfile
├── go.mod
├── go.sum
├── LICENSE
├── Makefile
└── README.md
- First get the dependencies with this command:
make dependency
- Copy the
.env.example
to.env
with run this command:
cp .env-example .env
- Generate the stubs with this command:
make proto-gen
- and for running the application can use this command:
make debug
- For running the application with hot reload can use this command:
make air
For commit message style or git style guide, use this doc
ORM using GORM, follow this doc
Architecture reference on go-grpc-microservices, follow this doc repo