golang-gin-realworld-example-app

使用Golang + Gin构建的示例性真实世界应用程序。(Exemplary real world application built with Golang + Gin)

Github stars Tracking Chart

RealWorld Example App

Build Status
codecov
License: MIT
GoDoc

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.

How it works

.
├── 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 the Golang

https://golang.org/doc/install

Environment Config

make sure your ~/.*shrc have those varible:

➜  echo $GOPATH
/Users/zitwang/test/
➜  echo $GOROOT
/usr/local/go/
➜  echo $PATH
...:/usr/local/go/bin:/Users/zitwang/test//bin:/usr/local/go//bin

Install Govendor & Fresh

I used Govendor manage the package, and Fresh can help build without reload

https://github.com/kardianos/govendor

https://github.com/pilu/fresh

cd
go get -u github.com/kardianos/govendor
go get -u github.com/pilu/fresh
go get -u golang.org/x/crypto/...

Start

➜  govendor sync
➜  govendor add +external
➜  fresh

Testing

➜  go test -v ./... -cover

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)

Main metrics

Overview
Name With Ownergothinkster/golang-gin-realworld-example-app
Primary LanguageGo
Program languageGo (Language Count: 2)
PlatformBSD, Linux, Mac, Windows
License:MIT License
所有者活动
Created At2017-10-02 18:30:41
Pushed At2024-01-05 04:06:57
Last Commit At2022-08-31 06:13:12
Release Count5
Last Release Name0.0.6 (Posted on )
First Release Name0.0.1 (Posted on )
用户参与
Stargazers Count2.5k
Watchers Count51
Fork Count497
Commits Count108
Has Issues Enabled
Issues Count18
Issue Open Count2
Pull Requests Count6
Pull Requests Open Count7
Pull Requests Close Count4
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private