基于 Gin 进行模块化设计的 API 框架,封装了常用功能,操作简单,致力于进行快速的业务研发。比如,jwt 签名验证、zap 日志收集、panic 异常捕获、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、v2.0支持后台管理、casbin权限管理可支持按钮级权限,使用Light Year Admin 模板、支持命令工具生成Model、初始化数据库 等等
个人爱好,业务编码,喜欢的给个star
- golang版本 >= v1.16
- 下载
- 使用git克隆本项目
git clone https://github.com/18211167516/Go-Gin-Api.git
-
cd到cmd目录,编译 然后执行cmd.exe initdb 当然了你要先创建数据库
-
登录后台
账号:admin
密码:Admin123
- 贡献指南
- issue 仅用于提交 Bug 或 Feature 以及设计相关的内容,其它内容可能会被直接关闭。
- pull Request 请先 fork 一份到自己的项目下,不要直接在仓库下建分支。
- commit 信息要以[文件名]: 描述信息 的形式填写,例如 README.md: fix xxx bug。
- 确保 PR 是提交到 dev 分支,而不是 master 分支。
- 如果是修复 bug,请在 PR 中给出描述信息。
# 启用 Go Modules 功能
go env -w GO111MODULE=on
# 配置 GOPROXY 环境变量
go env -w GOPROXY=https://goproxy.io,direct
# 使用如下命令下载swag
go get -u github.com/swaggo/swag/cmd/swag
swag init
执行上面的命令后,server目录下会出现docs文件夹,登录http://localhost:8080/swagger/index.html,即可查看swagger文档
go get github.com/pilu/fresh
进入项目执行
fresh
配置文件 是runner.conf
cd cmd
go build .
./cmd.exe make:model
详细命令
./cmd.exe make:model -h
生成基础表和数据
cd cmd
go build .
./cmd.exe initdb
根据model生成数据表
./cmd.exe make:model -t=Test
生成command命令
生成make-service命令:同时会将-转成:
./cmd.exe make:command -n=make-service
生成service
根据app/models/test Test
生成默认文件 TestService.go
./cmd.exe make:service -m=test/Test
生成自定义文件 testSerive.go
./cmd.exe make:service -m=test/Test -f=testService
生成到自定义目录
./cmd.exe make:service -m=test/Test -p=test
会把-转成:
./cmd.exe make:command -n=make-service
- 用
Gin
快速搭建基础restful风格API,Gin
是一个go语言编写的Web框架 - 数据校验
go-playground
gin框架内置,已支持错误信息转中文 - 数据库:采用
MySql
(5.6.44)版本,使用gorm
实现对数据库的基本操作。 - API文档:使用
Swagger
构建自动化文档。 - 热重启
HotStart
,我自己写的一个 - 配置文件 使用
viper
解析 - 日志:使用
logrus
实现日志记录。 - 权限:使用
casbin
实现按钮级权限。 - 命令行工具:自建命令行支持
mysql
转Model
、生成初始化数据。
├─app (项目核心目录)
| ├─controller (控制器)
| ├─middleware (中间件)
| ├─models (数据结构层)
| ├─request (数据请求层,定义特殊请求结构体以及数据校验)
| ├─request (数据展示层定义结构体)
| ├─services (服务层)
├─config (配置包)
├─cron (定时脚本)
├─core (內核)
├─docs (swagger文档目录)
├─global (全局变量)
├─initialize (初始化)
├─log (日志文件)
├─routes (路由)
├─static (静态文件包括config目录)
├─templates (模板)
├─tests (测试)
└─tool (工具)