Skip to content

fishjar/gin-rest-boilerplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GIN+GROM 的 REST 项目模板

支持特性

缺陷(待改进)

  • 配置文件未区分开发、测试、生产环境
  • 日志工具未使用协程,且未按级别及日期分开多文件
  • 中间件获取body数据流后,又写入body中,可能对性能有影响
  • 实例中缺少批量增、删、改的功能
  • 缺少文件上传、下载功能

目录结构

├── config
│   └── config.go       #配置文件
├── db
│   └── db.go           #数据库实例
├── handler
│   ├── foo.go          #示例handler
│   └── login.go        #登录handler
├── log                 #日志目录
│   └── gin.log
├── main.go             #主程
├── middleware          #中间件包
│   ├── bodyLogger.go   #日志中间件
│   └── jwtAuth.go      #JWT验证中间件
├── model
│   ├── base.go         #共用model
│   ├── foo.go          #示例model
│   └── user.go         #用户model
├── README.md
├── router              #路由配置
│   └── router.go
└── utils               #工具包
    ├── jwt.go
    ├── logger.go
    └── md5.go

使用指引

# 确保已安装go,及$GOPATH环境变量已配置
go version
echo $GOPATH

# 创建并进入目录
mkdir -p $GOPATH/src/github.com/fishjar/gin-rest-boilerplate && cd "$_"

# 克隆项目
git clone https://github.com/fishjar/gin-rest-boilerplate.git .

# 确认配置文件(尤其数据库相关配置)
vi config/config.go
vi db/db.go

# 如有需要,运行下列命令启动一个mysql数据库服务
# 否则跳过此行
sudo docker-compose -f db/docker-compose.mysql.yml up -d

# 安装依赖
go get

# 启动
go run main.go

# 测试:登录
curl -X POST http://localhost:4000/login/account \
-H "Content-Type: application/json" \
-d '{"userName":"gabe","userType":"admin","password":"123456"}'

# 测试:创建记录,注意替换<token>为实际值
curl -X POST http://localhost:8000/foos \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"name":"gabe","good_time":"2019-06-06T00:00:00Z","status":1}'

# 测试:查询记录,注意替换<token>为实际值
curl http://localhost:8000/foos \
-H "Authorization: Bearer <token>"

About

gin rest boilerplate

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published