Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Golang Microservice Boilerplate using MySQL, Docker and Swagger, API REST. Gin Go and GORM

License

Notifications You must be signed in to change notification settings

my-cloud-native/microservices-go

 
 

Repository files navigation

Golang Microservices Boilerplate

issues forks stars license CodeFactor

Example structure to start a microservices project with golang. Using a MySQL databaseSQL.

Manual Installation

If you would still prefer to do the installation manually, follow these steps:

Clone the repo:

git clone https://github.com/gbrayhan/microservices-go

If you need, configure the environment variables in file config.json, if you use docker-compose leave the variables set in the file config.json.example

cp config.json.example config.json

TL;DR command list

git clone https://github.com/gbrayhan/microservices-go
cd microservices-go
cp config.json.example config.json
docker-compose up  --build  -d

Table of Contents

Features

  • Golang v1.14: Stable version of go
  • Framework: A stable version of gin-go
  • SQL databaseSQL: MariaDB using internal sql package of go sql
  • Testing: unit and integration tests using package of go testing
  • API documentation: with swaggo a go implementation of swagger
  • Dependency management: with go modules
  • Environment variables: using viper
  • Docker support
  • Code quality: with CodeFactor
  • Linting: with ESLint

Commands

Build and run image of docker

docker-compose up  --build  -d

Swagger Implementation

swag init -g routes/ApplicationV1.go

To visualize the swagger documentation on local use

http://localhost:8080/v1/swagger/index.html

Unit test command

# run recursive test
go test  ./test/unitgo/...
# clean go test results in cache
go clean -testcache

Lint inspection of go

golangci-lint run ./...

About

Golang Microservice Boilerplate using MySQL, Docker and Swagger, API REST. Gin Go and GORM

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 98.8%
  • Dockerfile 1.2%