Awesome
Golang/Gin codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API.
This codebase was created to demonstrate a fully fledged fullstack application built with Golang/Gin including CRUD operations, authentication, routing, pagination, and more.
Directory structure
.
├── gorm.db
├── hello.go
├── common
│ ├── utils.go //small tools function
│ └── database.go //DB connect manager
├── users
| ├── models.go //data models define & DB operation
| ├── serializers.go //response computing & format
| ├── routers.go //business logic & router binding
| ├── middlewares.go //put the before & after logic of handle request
| └── validators.go //form/json checker
├── ...
...
Getting started
Install Golang
Make sure you have Go 1.13 or higher installed.
https://golang.org/doc/install
Environment Config
Set-up the standard Go environment variables according to latest guidance (see https://golang.org/doc/install#install).
Install Dependencies
From the project root, run:
go build ./...
go test ./...
go mod tidy
Testing
From the project root, run:
go test ./...
or
go test ./... -cover
or
go test -v ./... -cover
depending on whether you want to see test coverage and how verbose the output you want.
Todo
- More elegance config
- Test coverage (common & users 100%, article 0%)
- ProtoBuf support
- Code structure optimize (I think some place can use interface)
- Continuous integration (done)